C # Установить значение универсального свойства примитивного типа - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь установить значение примитивного типа в универсальном объекте динамически в C #

//Create a new instance of the value object (VO)
var valueObject = Activator.CreateInstance<T>();
//Get the properties of the VO
var props = valueObject.GetType().GetProperties();
//Loop through each property of the VO
foreach (var prop in props)
{
    if (prop.GetType().IsPrimitive)
    {
         var propertyType = prop.PropertyType;
         var value = default(propertyType);
         prop.SetValue(prop, value);
    }
}

Проблема в том, что я не могу использовать propertyType в качестве типа, чтобы получить значение по умолчанию для.Как получить propertyType для типа, который может использоваться default()?

1 Ответ

0 голосов
/ 19 декабря 2018

Вы должны передать экземпляр в SetValue:

prop.SetValue(valueObject, value);

Если вы хотите установить значение по умолчанию, вы можете использовать:

var propertyType = prop.PropertyType;
var defaultValue = Activator.CreateInstance(propertyType);
prop.SetValue(valueObject, defaultValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...