Создание новых DynamicParameters с помощью шаблона приводит к пустым DynamicParameters
Это мой объект:
public class DispatcherInfo
{
public bool isEnabled { get; set; }
public string applicationFileNameTemplateString { get; set; }
public string md5FileNameTemplateString { get; set; }
public string archiveMd5FileNameTemplateString { get; set; }
public string archiveFileNameTemplateString { get; set; }
public int applicationDispatcherTypeId { get; set; }
public bool useCarrierReviewDestination { get; set; }
public int ApplicationWriter_applicationWriterTypeId { get; set; }
public int ApplicationWriter_minApplicationCount { get; set; }
public int? ApplicationWriter_maxApplicationCount { get; set; }
public string ApplicationWriter_publicKeyName { get; set; }
public string ApplicationWriter_sourceDocumentFilePath { get; set; }
public string ApplicationWriter_headerTemplateString { get; set; }
public string ApplicationWriter_footerTemplateString { get; set; }
public int? ApplicationWriter_encodingTypeId { get; set; }
public string ApplicationWriter_delimiter { get; set; }
public bool? ApplicationWriter_writesColumnNames { get; set; }
public string ApplicationWriter_pluginTypeName { get; set; }
public string ApplicationWriter_pluginAssemblyName { get; set; }
public bool ApplicationWriter_shouldFlattenPdf { get; set; }
public bool hasSchedule { get; set; }
public bool? Schedule_isRealTime { get; set; }
public DateTime? Schedule_startDate { get; set; }
public DateTime? Schedule_endDate { get; set; }
public int? Schedule_recurrenceTypeId { get; set; }
public int? Schedule_interval { get; set; }
public int? Schedule_minute { get; set; }
public int? Schedule_hour { get; set; }
public int? Schedule_weekdayId { get; set; }
public int? Schedule_dayOfMonth { get; set; }
public string Schedule_pluginTypeName { get; set; }
public string Schedule_pluginAssemblyName { get; set; }
public bool hasPrimaryTransmitter { get; set; }
public int? PrimaryTransmitter_transmissionTypeId { get; set; }
public string PrimaryTransmitter_destinationUriTemplateString { get; set; }
public bool? PrimaryTransmitter_ftpConnectsInActiveMode { get; set; }
public string PrimaryTransmitter_ftpUserName { get; set; }
public string PrimaryTransmitter_ftpPassword { get; set; }
public string PrimaryTransmitter_emailSubjectTemplateString { get; set; }
public string PrimaryTransmitter_emailBodyTemplateString { get; set; }
public string PrimaryTransmitter_emailReplyToAddress { get; set; }
public string PrimaryTransmitter_emailRecipientList { get; set; }
public string PrimaryTransmitter_emailCarbonCopyList { get; set; }
public string PrimaryTransmitter_emailBlindCarbonCopyList { get; set; }
public string PrimaryTransmitter_emailFooterTemplateString { get; set; }
public bool? PrimaryTransmitter_sendAsAttachment { get; set; }
public string PrimaryTransmitter_pluginTypeName { get; set; }
public string PrimaryTransmitter_pluginAssemblyName { get; set; }
public bool hasCarrierReviewTransmitter { get; set; }
public int? CarrierReviewTransmitter_transmissionTypeId { get; set; }
public string CarrierReviewTransmitter_destinationUriTemplateString { get; set; }
public bool? CarrierReviewTransmitter_ftpConnectsInActiveMode { get; set; }
public string CarrierReviewTransmitter_ftpUserName { get; set; }
public string CarrierReviewTransmitter_ftpPassword { get; set; }
public string CarrierReviewTransmitter_emailSubjectTemplateString { get; set; }
public string CarrierReviewTransmitter_emailBodyTemplateString { get; set; }
public string CarrierReviewTransmitter_emailReplyToAddress { get; set; }
public string CarrierReviewTransmitter_emailRecipientList { get; set; }
public string CarrierReviewTransmitter_emailCarbonCopyList { get; set; }
public string CarrierReviewTransmitter_emailBlindCarbonCopyList { get; set; }
public string CarrierReviewTransmitter_emailFooterTemplateString { get; set; }
public bool? CarrierReviewTransmitter_sendAsAttachment { get; set; }
public string CarrierReviewTransmitter_pluginTypeName { get; set; }
public string CarrierReviewTransmitter_pluginAssemblyName { get; set; }
public Guid? ApplicationDispatcherFormMap_formGuid { get; set; }
public int newApplicationDispatcherId { get; set; }
}
Теоретически я должен быть в состоянии сделать что-то вроде этого...
var dispInfo = new DispatcherInfo { /* a number of Properties are given values */ };
var parameters = new DynamicParameters(dispInfo);
parameters.Output(dispatcherInfo, info => info.newApplicationDispatcherId);
Но мой объект параметров пуст, и представление Результаты свойства ParameterNames на parameters
состояния: Enumeration yielded no results
,
С другой стороны, это работает...
var dispInfo = new DispatcherInfo { /* a number of Properties are given values */ };
dispInfo.GetType().GetProperties().Each(prop =>
{
parameters.Add(prop.Name, prop.GetValue(dispatcherInfo));
});
parameters.Add("newApplicationDispatcherId",0, direction: ParameterDirection.Output);
Но добавление моего вывода таким образом, кажется, работает только иногда. Если я обновлю свои параметры вторым способом, но добавлю вывод в обоих направлениях (так что оба parameters.Add
а также parameters.Output
Кажется, у меня самый надежный вывод.
Это заставляет меня думать, что что-то не так с объектом, который я использую в качестве шаблона, но я не могу понять, что это такое. Мне нравится синтаксис создания моих параметров с помощью шаблона гораздо больше, чем циклический просмотр моих свойств и добавление их по одному.
Есть идеи?