J'ai une interface et une classe qui implémente cette interface, disent:Comment générer automatiquement pattern Décorateur en C#
interface IMyInterface
{
void Func1();
void Func2();
}
class Concrete : IMyInterface
{
public virtual void Func1() { //do something }
public virtual void Func2() { //do something }
}
Maintenant, je veux créer une classe qui décore chacune des méthodes de classe en béton avec un certain logique spécifique, à exécuter dans un environnement non productif, avant et après l'appel.
class Decorator : Concrete
{
public override void Func1() { Pre(); base.Func1; Post(); }
public virtual void Func2() { Pre(); base.Func2; Post(); }
}
Ma question est-il un moyen plus simple de générer automatiquement cette classe autre que la réflexion sur l'utilisation de l'interface et de créer un fichier texte avec l'extension cs?
Le message Appeler devrait retourner quelque chose, donc j'ai retourné le message original. La méthode d'origine a été appelée, mais j'ai reçu l'exception suivante: System.Runtime.Remoting.RemotingException: La méthode a été appelée avec un message de type inattendu. Des pensées? –
En regardant dans MSDN (http://msdn.microsoft.com/en-us/library/system.runtime.remoting.proxies.realproxy.aspx) un type de IMethodReturnMessage devrait être retourné. Comment puis-je simplement en créer un? –
new ReturnMessage (retval) - voir ici: http://msdn.microsoft.com/fr-fr/library/system.runtime.remoting.messaging.returnmessage.aspx – SpeksETC