Я использую отражение, чтобы получить все свойства объекта. Затем мне нужно выяснить, является ли какое-либо из значений этого свойства значением по умолчанию любого типа, которым они являются. Ниже мой текущий код. Он жалуется, что пространство имен или тип не удалось найти. Это заставляет меня думать, что это имеет какое-то отношение к тому, как C# подразумевает принудительное принуждение типа. Поскольку я захватываю тип во время выполнения, он не знает, как его сравнивать или что-то не совсем понятно.Получение значения неизвестного типа во время выполнения
Я надеялся избежать случая переключения, сравнивая имя типа, которое приходит, но прямо сейчас, которое выглядит как мой единственный вариант, если только блестящие люди из StackOverflow не приведут меня в правильном направлении.
private bool testPropertyAttribute(PropertyInfo prop)
{
dynamic value = prop.GetValue(DataObject, null);
Type type = prop.PropertyType;
/* Test to see if the value is the defult of its type */
return (value == default(prop.PropertyType)
}
['default' работает только с общими параметрами.] (Http://msdn.microsoft.com/en-us/library/xwth0h0d.aspx) Кроме того, в вашем коде отсутствует закрывающая скобка и точка с запятой. –
Предполагаю, что вы ожидаете, что значение по умолчанию не имеет значение null? – rene
Вам следует избегать «динамического», если у вас нет другого хорошего выбора. Использование 'var' или' object' в качестве типа 'value' будет работать отлично. – Bobson