Question

Quelqu'un a-t-il déjà essayé de générer des méthodes d'extension à l'aide de System.Codedom sous .NET 4.0? Il ne semble pas y avoir de moyen de spécifier un CodeMemberMethod ou CodeParameterDeclarationExpression comme étant une méthode / paramètre d'extension.

Si cela n'est pas possible, y a-t-il de bonnes solutions de contournement?

Merci

Était-ce utile?

La solution

Apparemment, la codom ne peut pas générer le code correct pour le premier paramètre d'une méthode d'extension, mais vous pouvez le tromper comme ceci:

var param = new CodeParameterDeclarationExpression("this string", "s");

Il ignorera avec bonheur le fait que "cette chaîne" n'est pas un type valide ...

Autres conseils

Voir Attribut d'extension

Devis:

Dans Visual Basic, vous devez utiliser cet attribut pour créer une méthode d'extension. Pour plus d'informations, voir les méthodes d'extension (Visual Basic).

En C #, vous n'avez pas besoin d'utiliser cet attribut; Vous devez utiliser le modificateur This (C # Reference) pour le premier paramètre pour créer une méthode d'extension. Le compilateur émet automatiquement ExtensionAttribute pour les méthodes d'extension. Pour plus d'informations, voir les méthodes d'extension (C # Guide de programmation).

Si vous écrivez un compilateur qui prend en charge les méthodes d'extension, votre compilateur doit émettre cet attribut sur chaque méthode d'extension et sur chaque classe et assemblage qui contient une ou plusieurs méthodes d'extension.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top