1

.NETFrameworkで実行される言語用のコンパイラを作成しています。importステートメントのコードを生成しようとしています。基本的に

import System.Drawing

次のように動作する必要があります

using System.Drawing;

C#で。importステートメントは、次のようなものもサポートします。

import Foo.Bar in "foo.dll"

これにより、foo.dllにFoo.Barクラスがインポートされます。私の質問は、Reflection.Emitを使用して、これらを生成されたプログラムにリンクするにはどうすればよいですか?

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

4

1 に答える 1

3

あなたはただ:ライブラリを消費します。つまり、発行されたコードでfoo.dllのタイプ/メソッドを使用するだけです。ラッパーはReflection.Emit、必要な参照メタデータを自動的に追加します。これは、コードがライブラリをインポートしてからそれを使用しない場合、その参照は生成されたILに存在しないことを意味することに注意してください。おかしなこと、C#コンパイラ(そしておそらくVBコンパイラ)もそうです。

于 2012-12-17T19:54:02.083 に答える