【问题标题】:Which .NET Programming Languages Have a CodeDom Provider?哪些 .NET 编程语言有 CodeDom 提供程序?
【发布时间】:2011-01-06 05:59:02
【问题描述】:

除了 C#、VB.NET、C++(托管和 C++/CLI)和 F#,哪些 .NET 编程语言有自己的 CodeDom 提供程序?

【问题讨论】:

    标签: .net codedom system-codedom-compiler


    【解决方案1】:

    我曾考虑为 UnrealScript 制作一个,但遇到了一些奇怪的问题,例如 CodeBinaryOperatorType 不包含异或运算。 .NET 4 中的新表达式树似乎非常更好地表示了 CodeDom 应该在块级别提供哪些功能(如在组成函数体的语句块中)。

    我认为我们需要一个新的 CodeDom,它采用 System.CodeDom 的外部部分并使用 System.Linq.Expressions 的内部部分。然后使结果能够生成动态程序集或源代码作为输出。 (现在我想起来了,生成一个已编译的程序集实际上与创建一种新的“语言”来输出源代码是一样的。)

    编辑:除此之外,您还必须考虑实现 CodeModel API,因为 CodeDom 通常是在有人将新语言集成到 Visual Studio 时实现的。

    【讨论】:

    • 在上一次 Lang.NET 研讨会上,一位语言创建者抱怨了类似的事情,微软工程师回应(只是半开玩笑):“CodeDom 可以代表任何语言,只要它是 C#。”他基本上承认 CodeDom 是失败的,而表达式树(或者更确切地说是“语句”树)是前进的方向。
    • @JörgWMittag:表达式树可以用来为整个类生成源代码吗?
    猜你喜欢
    • 2011-05-02
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2016-05-30
    • 2011-08-09
    • 1970-01-01
    相关资源
    最近更新 更多