Generate Extension Methods using System.CodeDom

前端 未结 2 661
日久生厌
日久生厌 2021-01-05 15:58

Has anyone ever tried to generate extension methods using System.CodeDom under .NET 4.0? There doesn\'t seem to be any way to specify a CodeMemberMethod or CodeParameterDecl

相关标签:
2条回答
  • 2021-01-05 16:03

    See Extension Attribute

    Quote:

    In Visual Basic, you should use this attribute to create an extension method. For more information, see Extension Methods (Visual Basic).

    In C#, you do not need to use this attribute; you should use the this (C# Reference) modifier for the first parameter to create an extension method. The compiler automatically emits ExtensionAttribute for extension methods. For more information, see Extension Methods (C# Programming Guide).

    If you are writing a compiler that supports extension methods, your compiler should emit this attribute on each extension method and on each class and assembly that contains one or more extension methods.

    0 讨论(0)
  • 2021-01-05 16:09

    Apparently CodeDom isn't able to generate the correct code for the first parameter of an extension method, but you can cheat it like this:

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

    It will blissfully ignore the fact that "this string" is not a valid type...

    0 讨论(0)
提交回复
热议问题