spring.net代理工厂与目标类型需要属性虚拟?

时间:2010-04-29 09:02:54

标签: proxy properties virtual aop spring.net

我在代码中创建spring.net代理,使用ProxyFactory对象,ProxyTargetType为true,以便在非接口复杂对象上拥有代理。 代理似乎没问题,直到我在该对象上调用方法。该方法引用了一个公共属性,如果此属性不是虚拟属性,则其值为null。

如果我在spring配置文件中使用Spring.Aop.Framework.AutoProxy.InheritanceBasedAopConfigurer但是在这种情况下我不能使用它,因为Spring上下文不拥有此对象,所以不会发生这种情况。

这是正常的,是否有这样的行为或是否有一个调整来执行我想要的(代理对象虚拟方法而不必更改属性虚拟)? 请注意,我尝试了factory.AutoDetectInterfaces和factory.ProxyTargetAttributes值,但没有帮助。

我的代理创建代码:

public static T CreateMethodCallStatProxy<T>()
  {
   // Proxy factory
   ProxyFactory factory = new ProxyFactory();
   factory.AddAdvice(new CallMonitorTrackerAdvice());
   factory.ProxyTargetType = true;   

   // Create instance
   factory.Target = Activator.CreateInstance<T>();

   // Get proxy
   T proxiedClass = (T)factory.GetProxy();

   return proxiedClass;
  }

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

好的,所以属性需要是虚拟的。