NHibernate Validator выдает исключение System.NotSupportedException после обновления до 3.1

Кто-нибудь сталкивался с этим?

После обновления до NHibernate 3.1 я получаю сообщение следующее исключение из NHibernate Validator при запуске тестовых примеров NUnit:

System.NotSupportedException: вызванный член не поддерживается в динамической сборке. в System.Reflection.Emit.InternalAssemblyBuilder.GetManifestResourceStream (имя String ) в NHibernate.Validator.Cfg.XmlMappingLoader.AddResource (сборка , строковый ресурс ) в NHibernate.Validator.Cfg.XmlMappingLoader.GetXmlMappingFor (тип типа) в NHibernate.Validator.Engine.JITClassMappingFactory.GetExternalDefinitionFor (тип тип) NHibernate.Validator.Engine.JITClassMappingFactory.GetClassMapping (тип clazz, режим ValidatorMode) в NHibernate.Validator.Engine.ClassValidator.InitValidator (Type clazz, IDictionary`2 nestedClassValidators) в NHibernate.Validator.Engine.ClassValidator..ctor (Тип clazz, IConstraintValidatorFactory constraintValidatorFactory, IDictionary`2 childClassValidators, IClassValidator {Factory) {Factory {1}} }} NHibernate.Validator.Engine.StateFullClassValidatorFactory.GetRootValidator (тип тип) в NHibernate.Validator.Engine.ValidatorEngine.GetClassValidator (Type e ntityType) в NHibernate.Validator.Engine.ValidatorEngine.GetElementOrNew (Тип entityType) в NHibernate.Validator.Engine.ValidatorEngine.InternalValidate (объект сущность, Object [] activeTags) в NHibernate.Validator.Engine.ValidatorEngine.Validate (объектная сущность, Object [] activeTags) в {{1 }} NHibernate.Validator.Event.ValidateEventListener.Validate (объект entity, режим EntityMode) в NHibernate.Validator.Event.ValidatePreUpdateEventListener.OnPreUpdate (PreUpdate} event) {1} Action.EntityUpdateAction.PreUpdate () в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Action \ EntityUpdateAction.cs: строка 200 в NHibernate.Action.EntityUpdateAction.Execute ( ) в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Action \ EntityUpdateAction.cs: строка 58 в NHibernate.Engine.ActionQueue.Execute (IExecutable исполняемый файл) в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Engine \ ActionQueue.cs: строка 136 в NHibernate.Engine.ActionQueue.ExecuteActions (список IList) в { {1}} d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Engine \ ActionQueue.cs: строка 126 в NHibernate.Engine.Ac tionQueue.ExecuteActions () в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Engine \ ActionQueue.cs: строка 170 в NHibernate.Event.Default .AbstractFlushingEventListener.PerformExecutions (сеанс IEventSource ) в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Event \ Default \ AbstractFlushingEventListener.cs: строка 241 на NHibernate.Event.Default.DefaultFlushEventListener.OnFlush (событие FlushEvent ) в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Event \ Default \ DefaultFlushEventListener. cs: строка 19 в NHibernate.Impl.SessionImpl.Flush () в d: \ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Impl \ SessionImpl.cs: line {{1 }} 1472 в TestDataAccess.FooTest.TestFoo () в FooTest.cs

Как видно из трассировки стека, ошибка возникает, когда сеанс сбрасывается и NHibernate Validator делает свое дело.

Обновление Я попытался пройти через код NH Validator, и оказалось, что в какой-то момент он пытается проверить прокси Castle объекта, а не сам базовый объект. Тогда это вызывает проблемы. Не знаю, что с этим делать ...

Обновление Проблема исчезнет, ​​если я буду использовать LinFu ProxyFactoryFactory, а не Castle. К сожалению, LinFu дает мне другие проблемы , поэтому я не хочу его использовать.

6
задан Community 23 May 2017 в 10:34
поделиться