我正在尝试创建一个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?
}
}
}
正如您所看到的,我不知道如何通过测试空值来完成,假设其余代码是正确的。
答案 0 :(得分:2)
以这种方式获取价值:
object value = propertyInfo.GetValue(instance, null);
if (value == null)
//Null value
else if (DBNull.Value.Equals(value))
//DB Null