如何通过反射获取另一个程序集中某个实例的Property的值

泡泡龙 2017-06-28 10:08:09
这几天研究反射,因为我的dll程序集是A,加载的另一个dll程序集B

在程序集B中有个类InnerInfo,B在启动的时候实例化了这个类,然后给里面的属性name赋值
public class InnerInfo
{
private string _name;
public string Name
{
get { return _name; }
set { _name= value; }
}
}

我现在想在我的dll里面通过反射得到这个name的值,请问如何写代码?

程序集B可以得到,classname可以通过assembly.GetTypes()遍历得到,
type也能得到 Type type = assembly.GetType(className, false, true);
property通过遍历 type.GetProperties得到

但是,如何得到Name的值呢?
property.GetValue(实例, null); //这个实例如何写?

对反射不太熟,请大家帮看看,谢谢!

...全文
154 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡龙 2017-06-28
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
应该是这样:
Type type = assembly.GetType(className, false, true);     
object classInstance = Activator.CreateInstance(type);
PropertyInfo namePropertyInfo = type .GetProperty("Name");
string value = (string)namePropertyInfo .GetValue(classInstance, null); // 获取值
谢谢,非常感谢
  • 打赏
  • 举报
回复
学习一下 .net 的 MEF 知识。
exception92 2017-06-28
  • 打赏
  • 举报
回复
应该是这样:
Type type = assembly.GetType(className, false, true);     
object classInstance = Activator.CreateInstance(type);
PropertyInfo namePropertyInfo = type .GetProperty("Name");
string value = (string)namePropertyInfo .GetValue(classInstance, null); // 获取值
xdashewan 2017-06-28
  • 打赏
  • 举报
回复
B在启动的时候实例化了这个类,你不是实例化了一个对象吗,第一个参数就是那个对象

110,547

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧