【发布时间】:2013-10-11 19:18:13
【问题描述】:
我希望将代码中某些基于反射的部分替换为使用动态运行时编译性能更好的部分。环顾四周,我发现 Mono 和 Microsoft 都有单独的编译器即服务解决方案:Mono.CSharp 和 Microsoft.CSharp。
冒着提出基于意见的问题的风险,我想知道这两者的比较如何?
据我从非常肤浅的初步调查中得知,它们通常都提供 CAAS 功能。我能够使用 Microsoft.CSharp 编译一个“Hello World”类并执行它。虽然我还没有对 Mono 做同样的事情,但我假设它可以做同样的事情。
有没有人有任何经验或两者都可以评论这个问题?
编辑:我并不是要比较 Mono 的 C# 和 Microsoft 的 C# - 我们已经熟悉并使用了这两者。该问题专门针对两种 CAAS(Compiler-as-a-Service)解决方案。
CAAS 不是(无论如何).NET 运行时的标准部分,即还没有 System.Compile 命名空间。 Mono.CSharp 和 Microsoft.CSharp 这两个解决方案是 C# 的独立非标准 CAAS 解决方案。它们的界面非常不同,因此是个问题。
【问题讨论】:
-
@nvoigt,我不认为它是重复的,因为您提供的链接标题具有误导性,并不是问题的真正含义。
-
这不是重复的,我对标题不好。查看我的更新。
-
@AmirAbiri 哦,好的,这样就搞定了。
-
Microsoft.CSharp仍然是 CodeDom 驱动的恕我直言。Mono.CSharp不同。您可以将Mono.CSharp与 Roslyn 进行比较,但从不将其与Microsoft.CSharp进行比较。命名空间相似度纯属偶然,并无密切关系。 -
我完全忘记了 Roslyn - 我前段时间读过它。我会把它添加到我的候选人名单中。
标签: c# mono compiler-as-a-service