由于NHibernate中的Lazy-Loading,我必须确保我的域的每个属性都是虚拟的。 我想通过在每次反射中编写单元测试检查来实现这一点,即特定命名空间中所有类的所有公共属性都是虚拟的。
我该怎么做?
先谢谢Tobi
答案 0 :(得分:3)
没有必要,只需构建会话工厂。如果属性不是虚拟配置,则会抛出一条详细的消息,告诉你出了什么问题。
答案 1 :(得分:1)
我从一个类似的案例中修改了一段代码,这应该让你顺利;
public static bool Test<T>()
{
var valid = true;
foreach (var property in typeof(T).GetProperties())
{
var accessor = property.GetAccessors()[0];
if (accessor.IsVirtual)
continue;
Console.WriteLine("Member " + typeof(T).Name + "." + property.Name + " is not virtual");
valid = false;
}
return valid;
}
你会以这种方式使用它:
var valid = Test<User>();