有没有人遇到过这个?
升级到 NHibernate 3.1 后,在运行 NUnit 测试用例时,我从 NHibernate Validator 收到以下异常:
System.NotSupportedException :动态程序集中不支持调用的成员。在 System.Reflection.Emit.InternalAssemblyBuilder.GetManifestResourceStream(String name) 在 NHibernate.Validator.Cfg.XmlMappingLoader.AddResource(Assembly assembly, String resource) 在 NHibernate.Validator.Cfg.XmlMappingLoader.GetXmlMappingFor(Type type) 在 NHibernate.Validator。 NHibernate.Validator.Engine.ClassValidator.InitValidator(Type clazz, IDictionary`2 nestedClassValidators) 的 NHibernate.Validator.Engine.JITClassMappingFactory.GetClassMapping(Type clazz, ValidatorMode mode) 的 Engine.JITClassMappingFactory.GetExternalDefinitionFor(Type type)。 Engine.ClassValidator..ctor(类型 clazz,IConstraintValidatorFactory constraintValidatorFactory,IDictionary`2 childClassValidators,
正如您从堆栈跟踪中看到的那样,当会话被刷新并且 NHibernate Validator 执行其操作时会发生错误。
更新我尝试单步执行 NH 验证器代码,似乎在某些时候它正在尝试验证实体的 Castle 代理,而不是基础实体本身。这会导致麻烦。不知道该怎么办...
更新如果我使用 LinFu ProxyFactoryFactory,而不是 Castle,问题就会消失。不幸的是,LinFu 给我带来了其他问题,所以我不想使用它。