Générer des méthodes d’extension à l’aide de System.CodeDom

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 semble n’y avoir aucun moyen de spécifier CodeMemberMethod ou CodeParameterDeclarationExpression en tant que méthode / paramètre d’extension.

Si ce n’est pas possible, existe-t-il de bonnes solutions de contournement?

Merci

Apparemment, CodeDom n’est pas capable de 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 ssortingng", "s"); 

Il ignorera béatement le fait que “cette chaîne” n’est pas un type valide …

Voir l’ atsortingbut d’extension

Citation:

En Visual Basic, vous devez utiliser cet atsortingbut pour créer une méthode d’extension. Pour plus d’informations, consultez Méthodes d’extension (Visual Basic).

En C #, vous n’avez pas besoin d’utiliser cet atsortingbut; vous devez utiliser le modificateur this (Référence C #) pour le premier paramètre pour créer une méthode d’extension. Le compilateur émet automatiquement ExtensionAtsortingbute pour les méthodes d’extension. Pour plus d’informations, consultez Méthodes d’extension (Guide de programmation C #).

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