1

我正在尝试创建一个在Web Site Project. 类型名称是可配置的,因此是已知的,但对于程序集名称,无法在配置时说出名称,因为网站项目是由 ASP .Net 编译的。

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

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

是否有任何简单的方法来使用这个CreateInstance重载,或者我应该搜索所有加载的类型并按名称找到它?

此代码在另一个库中使用,该库在网站项目中被引用。

4

3 回答 3

3

App_Code是分配给包含驻留在 App_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 回答