Создание новых 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Кажется, у меня самый надежный вывод.

Это заставляет меня думать, что что-то не так с объектом, который я использую в качестве шаблона, но я не могу понять, что это такое. Мне нравится синтаксис создания моих параметров с помощью шаблона гораздо больше, чем циклический просмотр моих свойств и добавление их по одному.

Есть идеи?

0 ответов

Другие вопросы по тегам