实例使用C#反射/组装/ Activator对象我有一个命名空间中定义一个类(我将省略的代码):无法从字符串
namespace My.Business.Services
{
public class ProgressSender
{
}
}
该项目被保存为一个DLL。在我的解决方案中的另一个项目中,我尝试以各种方式安装它(实际上这是我的app.config中的一个字符串),但它们都失败了(它确实可以明确地在代码中早期绑定类)。我已经包括My.Business.Services作为参考程序太:
namespace My.Progress.Imaging
{
static class Program
{
static void Main(string[] args)
{
string exportItemNS = "My.Business.Services";
string exportItemC = "ProgressSender";
string exportItemFull = "My.Business.Services.ProgressSender";
//value cannot be null
ProgressSender obj =
(ProgressSender)Activator.CreateInstance(Type.GetType(exportItemFull));
//could not load type 'ProgressSender' from assembly 'My.Business.Services'
var obj=Activator.CreateInstance(exportItemNS, exportItemC);
//could not load type 'ProgressSender' from assembly 'My.Business.Services'
ProgressSender s=(ProgressSender)Activator.CreateInstance(null, exportItemFull);
//Loads ok but then classType is null
Assembly assembly;
assembly = Assembly.Load(exportItemNS);
Type classType = assembly.GetType(exportItemC);
}
}
}
如果我得到相同的命名空间,甚至系统是一个类型的罚款:
Type t = Type.GetType("My.Progress.Imaging.Program");
t = Type.GetType("System.String");
您是否还尝试过'assembly.GetType(exportItemFull)'? – SimpleVar 2015-02-06 19:03:10