Я использую Spring.NET AOP, чтобы определить, когда постоянный объект C # изменил какие-либо свои свойства (в соответствии с Spring.AopQuickStart.Step6.2010 в Spring.NET/examples), но я получаю исключение MappingException - Нет сохранить для: DecoratorAopProxy_8aa4d47e877a48b4828bf7a6a51bbedf
Вот мой код:
var person = Repository.GetById(personId);
var personProxy = GetProxy(person);
// udpate some properties in personProxy - this is where my advisor determines if/what has changed
Repository.Save(personProxy); // exception thrown here
Вот как выглядит GetProxy (согласно примеру AopQuickStart):
private static Person GetProxy(Person target)
{
var proxyFactory = new Spring.AOP.Framework.ProxyFactory(target);
proxyFactory.AddAdvisor(new ModificationAdvisor(target.GetType()));
proxyFactory.AddIntroduction(new IsModifiedAdvisor());
proxyFactory.ProxyTargetType = true;
return (Person)proxyFactory.GetProxy();
}
Я думаю, что проблема в том, что GetType для объекта, переданного в сеанс сохранения NHibernate, это "DecoratorAopProxy", а не Person, который сбрасывает NHibernate.
Как я могу решить эту проблему?