Тестирование свойств с отражением с использованием атрибутов - PullRequest
0 голосов
/ 22 января 2010

Я пытаюсь создать тест nUnit для следующих действий:

1) Загрузите DLL для проверки.
2) Итерируйте среди различных типов.
3) Найдите те, которые имеют определенный пользовательский атрибут.
4) Создайте эти типы и убедитесь, что все их общедоступные свойства не равны нулю.

Вот что я написал до сих пор:

Assembly assembly = Assembly.LoadFile("MyLib.dll");  
foreach (Type type in assembly.GetTypes()) {  
    if (type.GetCustomAttributes(typeof(CustomAttribute), false).Length != 0) {  
        Object instance = Activator.CreateInstance(type);  
        foreach (PropertyInfo propertyInfo in type.GetProperties()) {  
            // how to go on from here?
        }  
    }  
}  

Как видите, я не знаю, как завершить тестирование на нули, предполагая, что остальная часть кода верна.

1 Ответ

2 голосов
/ 22 января 2010

Получение значения работает следующим образом:

object value = propertyInfo.GetValue(instance, null);

if (value == null)
   //Null value
else if (DBNull.Value.Equals(value))
   //DB Null
...