Je crée un proxy spring.net en code en utilisant l'objet ProxyFactory avec ProxyTargetType à true pour avoir un proxy sur un objet complexe non interfacé. Proxying semble ok jusqu'à ce que j'appelle une méthode sur cet objet. La méthode fait référence à une propriété publique et si cette propriété n'est pas virtuelle, sa valeur est null.Spring.net usine de proxy avec le type de cible a besoin de propriété virtuelle?
Cela ne se produit pas si j'utilise Spring.Aop.Framework.AutoProxy.InheritanceBasedAopConfigurer dans le fichier de configuration printanier mais dans ce cas je ne peux pas l'utiliser car le contexte printanier ne possède pas cet objet.
Est-ce normal d'avoir un tel comportement ou y at-il un tweak pour effectuer ce que je veux (méthode virtuelle de l'objet proxy sans avoir à changer les propriétés virtuelles)? Notez que j'ai essayé les valeurs factory.AutoDetectInterfaces et factory.ProxyTargetAttributes mais cela n'aide pas.
Mon code de création proxy:
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;
}
Merci pour votre aide