CodeDom生成不安全代码或备用编译替代方案

时间:2011-07-20 13:07:29

标签: c# codedom unsafe system-codedom-compiler

我刚刚使用CodeDom开发了一个相当大的项目。好吧,差不多完成了 - 只针对一个小问题 - 我项目中的一个类需要/unsafe标记。我已经读过CodeDom不支持使用不安全指针的方法或类型的* generation *,但是,我很好奇是否有某些方法可以编译一个类来自文件 - 已包含不安全标记。我知道我可以手动创建一个.csproj文件并从此处启用不安全的代码,但同样,我不认为我可以在从文件编译时使用此.csproj文件。

最后,如果上述方法都不可能,我是否可以使用C#.dll生成源代码?也许是VS默认使用的那个。

感谢您的帮助!

埃文

1 个答案:

答案 0 :(得分:0)

通过使用CodeSnippetTypeMember类,您可以使用不安全的指针在codedom中生成方法。

您不能做的是以便携方式使用不安全指针生成方法,因为CodeDom只有语言能够使用的功能的子集。 您在encodeom中找到的功能更有可能出现在多种语言中。

关于你的问题;你应该能够从文件中编译一个类。创建一个与此相似的CompilerParameters对象。

CompilerParameters cp = new CompilerParameters();
cp.CompilerOptions = "/unsafe";

然后在您选择的提供商上调用CompileAssemblyFromFile