使用属性使用反射测试属性

时间:2010-01-22 11:27:09

标签: c# .net reflection properties attributes

我正在尝试创建一个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 个答案:

答案 0 :(得分:2)

以这种方式获取价值:

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

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