2011-07-20 6 views
0

CodeDomを使用してかなり大きなプロジェクトを開発しました。まあ、ほとんど完了 - 1つの小さな問題のexept - 私のプロジェクトのクラスの1つは/unsafeタグが必要です。私はCodeDomが*安全なポインタを持つメソッドや型の*世代*をサポートしていないと読んだのですが、何らかの方法があるかどうかは不思議でしたファイルからクラス安全でないタグが組み込まれています。私は手動で.csprojファイルを作成してここから安全でないコードを有効にできることを知っていますが、ファイルからコンパイルするときにこの.csprojファイルを使用することはできません。CodeDom安全でないコードを生成するか代替の代替コードを生成する

最後に、上記の方法がどれも可能でない場合、C#.dllを使用してソースコードを生成する方法はありますか?おそらくVSがデフォルトで使用しているのと同じものでしょう。

ありがとうございました!

エヴァン

+0

選択したプロバイダにCompileAssemblyFromFileを呼び出します。 http://codedomutilities.codeplex.com/ – angrifel

答えて

0

あなたはCodeSnippetTypeMemberクラスの利用を通じて、危険なポインターでのCodeDOMのメソッドを生成することができます。

できないことCodeDomには、言語で可能な機能のサブセットしかないため、安全でないポインタを持つメソッドを移植可能な形式で生成します。 コードォームで見つかった機能は、多くの言語で存在する可能性が高い機能です。

ご質問ください。ファイルからクラスをコンパイルできるはずです。これと同等のCompilerParametersオブジェクトを作成します。

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

、その後、あなたがたCodeDOMに懸命に作業している場合は、このようにしてくださいを与えたいと思うかもしれません