Я создаю прокси-сервер 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;
}
Спасибо за вашу помощь