0

我刚刚完成了使用 CodeDom 开发一个相当大的项目。好吧,几乎完成了——除了一个小问题——我项目中的一个类需要这个/unsafe标签。我已经读过 CodeDom 不支持 *generation * 带有不安全指针的方法或类型,但是,我很好奇是否有某种方法可以从文件中编译类 - 已经具有不安全标签合并。我知道我可以手动创建一个 .csproj 文件并从这里启用不安全代码,但同样,我不认为我可以在从文件编译时使用这个 .csproj 文件。

最后,如果上述方法都不可行,有什么方法可以使用 C#.dll 生成源代码吗?可能与 VS 默认使用的相同。

感谢您的帮助!

埃文

4

1 回答 1

0

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

你不能做的是以可移植的方式生成带有不安全指针的方法,因为 CodeDom 只有语言能够提供的功能的子集。您在 codedom 中找到的功能更有可能以多种语言出现。

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

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

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

于 2011-08-03T01:04:44.217 回答