首页 新闻 赞助 找找看

如何通过类名称反射获得类

0
[已解决问题] 解决于 2019-05-11 10:59

首先有一个项目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

如何获取引用的项目中的类呢?

denli的主页 denli | 初学一级 | 园豆:17
提问于:2018-12-02 22:55
< >
分享
最佳答案
0

是不是程序集不对?Assembly.GetExecutingAssembly() 获取的是当前程序集,而不是引用的程序集 ClassLibrary1

奖励园豆:5
大豆男生 | 小虾三级 |园豆:608 | 2018-12-03 09:53

嗯,应该是的,但是我引用它了呀,不会还要填写路径吧,这样会不会太麻烦?而且我是通过nuget包引用的。

denli | 园豆:17 (初学一级) | 2018-12-03 23:03

@denli: 获取程序集那行,换成这试试:Assembly assembly = Assembly.LoadFrom("xxx.dll");

大豆男生 | 园豆:608 (小虾三级) | 2018-12-04 10:18
其他回答(1)
0

暂时搁置,找不到解决方案。

denli | 园豆:17 (初学一级) | 2019-05-11 10:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册