Прокси-фабрике spring.net с целевым типом требуется свойство virtual? - PullRequest
0 голосов
/ 29 апреля 2010

Я создаю прокси-сервер spring.net в коде, используя объект ProxyFactory с ProxyTargetType, равным true, чтобы иметь прокси для неинтерфейсного сложного объекта. Прокси кажется нормальным, пока я не вызову метод для этого объекта. Метод ссылается на открытое свойство, и если это свойство не является виртуальным, его значение равно нулю.

Этого не произойдет, если я использую Spring.Aop.Framework.AutoProxy.InheritanceBasedAopConfigurer в конфигурационном файле Spring, но в этом случае я не могу использовать это, поскольку контекст 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 Ответ

1 голос
/ 07 апреля 2011

ОК, поэтому свойства должны быть виртуальными.

...