如何从另一个库创建Web站点项目(App_Code)中定义的类型的实例

时间:2012-03-21 11:40:22

标签: c# asp.net activator

我正在尝试创建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重载,还是应该搜索所有已加载的类型并按名称查找?

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

3 个答案:

答案 0 :(得分:3)

App_Code是分配给包含驻留在App_Code目录类型中的类型的程序集的名称,因此您应该:

string assemblyName = "App_Code";

答案 1 :(得分:1)

如何从Web应用程序中存在您知道的类型的程序集,并使用它:

typeof(MyWellKnownType).Assembly

答案 2 :(得分:0)

这可能不是确切的答案,但是,如果您拥有所需类的代码,则可以将其作为链接添加到其他项目中,并直接使用它而不是使用反射。