我正在尝试创建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
重载,还是应该搜索所有已加载的类型并按名称查找?
此代码用于另一个库,在网站项目中引用。
答案 0 :(得分:3)
App_Code
是分配给包含驻留在App_Code目录类型中的类型的程序集的名称,因此您应该:
string assemblyName = "App_Code";
答案 1 :(得分:1)
如何从Web应用程序中存在您知道的类型的程序集,并使用它:
typeof(MyWellKnownType).Assembly
答案 2 :(得分:0)
这可能不是确切的答案,但是,如果您拥有所需类的代码,则可以将其作为链接添加到其他项目中,并直接使用它而不是使用反射。