我使用Spring.NET来确定C#持久对象何时更改了它的任何属性(根据Spring.NET/examples中的Spring.AopQuickStart.Step6.2010 ),但我得到了一个MappingException - No persister :Spring.AopQuickStart.Step6.2010
下面是我的代码:
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下面是(根据AopQuickStart示例) GetProxy的样子:
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();
}我认为问题在于传递给NHibernate的会话保存的对象的GetType是"DecoratorAopProxy",而不是抛出NHibernate的Person。
我该如何解决这个问题?
发布于 2012-03-16 19:39:41
查看DataBindingIntercepter.cs和DataBindingFactory.cs的实现
https://github.com/ayende/Effectus/tree/master/Effectus/Infrastructure
https://stackoverflow.com/questions/9727457
复制相似问题