首先有一个项目A,里面全部是实体类,例
//从entity类继承
public class Person : entity
{
public string Name { get; }
.....
}
public class entity { public string userName { get; } ..... }
再有一个项目B,引用了项目A,要实现的效果是,如果传入的字符串是"person",则返回Person
// 获取当前程序集 Assembly assembly = Assembly.GetExecutingAssembly(); // 创建类的实例,返回为 object 类型,需要强制类型转换 dynamic obj = assembly.CreateInstance("ClassLibrary1.Person");
上图中返回的obj是null
如何获取引用的项目中的类呢?
是不是程序集不对?Assembly.GetExecutingAssembly() 获取的是当前程序集,而不是引用的程序集 ClassLibrary1
嗯,应该是的,但是我引用它了呀,不会还要填写路径吧,这样会不会太麻烦?而且我是通过nuget包引用的。
@denli: 获取程序集那行,换成这试试:Assembly assembly = Assembly.LoadFrom("xxx.dll");
暂时搁置,找不到解决方案。