私の問題は次のようになります。
というプロジェクトがありmyframework
ます。次のように、いくつかの拡張メソッドが定義されています。
namespace myframework
{
public static class Helpers
{
public static bool ContainsAll(this string obj, string[])
{
return true;
}
}
}
また、インターフェースなどの他のものもあります。
System.CodeDom クラスを介して生成する 2 番目のクラスがあります。生成された出力は次のようになります。
using myframework;
public class A: IMyFrameworkInterface
{
public void foo()
{
string s ="HELLO";
if(s.ContainsAll(some_arr))
return;
}
//More methods defined...
}
実際のコンパイル呼び出しの前に作成された私が渡すコンパイラ オプションは、正しいアセンブリを参照します
var cp = new CompilerParameters();
cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("myframework.dll");
コード コンパイル モジュールは別のプロジェクトで作成されます。これを担当する特定のクラスは、コンパイルの結果を知ることができる CompilerError オブジェクトのリストへのアクセスも適切に提供します。
問題 1: asp.net プロジェクトでこれを試したところ、メタデータ ファイル myframework.dll が見つからないというエラーがコンパイラによってスローされました (プロジェクトで参照されているにもかかわらず)。
問題 2: Windows フォーム プロジェクトで試したとき。別のエラーが発生しました。今回は、文字列に ContainsAll() の定義が含まれていないと言っています
これら2つの特定の問題を解決するにはどうすればよいですか?