C# 调用同一解决方案不同项目的类中的属性或方法

2 篇文章 0 订阅
  • 第一步:添加引用

       在引用上右键----添加引用-----选择要引用的项目。

  • 第二步:实例化

//第一种:new实例化
ESClient es = new ESClient();
es.CalleeInfo = calleeinfo.ToJsonD();
client = es.getClient();


//第二种:Activator.CreateInstance() 获取实例化类
classname FetchTaskCaller = (classname)Activator.CreateInstance(Assembly.Load("namespace").GetType("namespace.classname"));
//调用方法
ESClient client = FetchTaskCaller.方法名();
//属性赋值
FetchTaskCaller.变量名 = 值;
//反射获取类
Type type = Assembly.Load("namespace").GetType("namespace.classname");
//实例化指定名称的类
object obj = System.Activator.CreateInstance(type);
//获取类中的你需要调用的方法
MethodInfo methodinfo = type.GetMethod("getClient", BindingFlags.Instance | BindingFlags.NonPublic);
//给方法传参数  如果是无参方法 直接传null即可
object[] parameters = new object[] { 1 };
//调用方法 接收返回值
client = (ElasticClient)methodinfo.Invoke(obj, parameters);

//获取指定名称的私有的属性
PropertyInfo propertyInfo = type.GetProperty("CalleeInfo", BindingFlags.Instance | BindingFlags.NonPublic);
//给对应属性赋值
propertyInfo.SetValue(obj, (object)calleeinfo.ToJsonD(), null);
//获取属性值
string name = (string)propertyInfo.GetValue(obj, null);

//以上是从一篇文章复制的,找不到了。

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值