1

で定義されたタイプのインスタンスを作成しようとしていますWeb Site Project。型名は構成可能であるため認識されますが、Web サイト プロジェクトは ASP .Net によってコンパイルされるため、構成時にアセンブリ名を特定することはできません。

var typeName = ConfigurationManager.AppSettings["typeName"];
var assemblyName = '.. get the assembly name ..';

var instance = Activator.CreateInstance(assemblyName, typeName);
return (IUserCredentials)instance.Unwrap();

このオーバーロードを使用する簡単な方法はありますCreateInstanceか、またはロードされたすべての型を検索して名前で見つけますか?

このコードは、Web サイト プロジェクトで参照されている別のライブラリで使用されています。

4

3 に答える 3

3

App_CodeApp_Codeディレクトリタイプに存在するタイプを含むアセンブリに割り当てられた名前であるため、次のことを行う必要があります。

string assemblyName = "App_Code";
于 2012-03-21T11:56:43.167 に答える
1

Web アプリケーションに存在することがわかっている型からアセンブリを取得し、それを使用するのはどうですか。

typeof(MyWellKnownType).Assembly
于 2012-03-21T12:18:48.303 に答える
0

これは正確な答えではないかもしれませんが、必要なクラスのコードがある場合は、それを他のプロジェクトにリンクとして追加し、リフレクションを使用する代わりに直接使用できます。

于 2012-03-21T11:51:43.723 に答える