范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

。NET如何通过反射调用某个对象的私有方法?

  咨询区
  我的类中有一组私有方法,我现在想根据灵活的输入值来动态调用其中的私有方法,代码类似是这个样子。  MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType); dynMethod.Invoke(this, new object[] { methodParams });
  代码跑起来后,我发现 dynMethod 并没有返回结果,请问我该如何配置才能正确的返回? 回答区
  如果你真的想解决这个问题,个人建议你写个扩展方法,比如下面这样。  static class AccessExtensions {     public static object call(this object o, string methodName, params object[] args)     {         var mi = o.GetType ().GetMethod (methodName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance );         if (mi != null) {             return mi.Invoke (o, args);         }         return null;     } }
  然后可以这样使用      class Counter     {         public int count { get; private set; }         void incr(int value) { count += value; }     }      [Test]     public void making_questionable_life_choices()     {         Counter c = new Counter ();         c.call ("incr", 2);             // "incr" is private !         c.call ("incr", 3);         Assert.AreEqual (5, c.count);     }
  微软最近修改了  反射API ,在新的反射模式和平台下,大概是这么写的。 obj.GetType().GetTypeInfo().GetDeclaredMethod("MethodName").Invoke(obj, yourArgsHere);
  实践中最好还是封装成一个 泛型方法 ,比如下面这样。 public static object InvokeMethod(this T obj, string methodName, params object[] args) {     var type = typeof(T);     var method = type.GetTypeInfo().GetDeclaredMethod(methodName);     return method.Invoke(obj, args); }
  注意: 如果你需要调用的方法是在 obj 的基类中,那这里的泛型参数  T  要显式定义为基类。如果你需要调用的方法是一个 异步方法 , 你可以使用 await (Task) obj.InvokeMethod(…)  。点评区
  确实微软已经优化了各种  反射Api ,使用起来虽然较慢,但相比以前要好很多了。
  文章来源于NET技术问答 ,作者Stackoverflow

百度助力AI人才,探索人工智能的无限可能近日,2021百度奖学金十强名单出炉。本届百度奖学金获得者的研究主要集中在算法数据识别自动驾驶生物医学等创新领域。百度创始人董事长兼CEO李彦宏将在12月27日召开的百度AI开发者人社部发布外卖员技能标准,美团持续优化骑手职业发展路径读创深圳商报记者陈姝近日,人力资源和社会保障部正式发布网约配送员国家职业技能标准(以下简称标准),将网约配送员职业分为五个等级,明确了各等级需掌握的工作内容技能要求和相关知识,让网互联网回收新模式健全再生资源回收利用网络,加强生活垃圾分类回收与再生资源回收的衔接。是我国十三五明确指出的规划方向,两网融合已成为国家推进生态文明和新型城镇化建设的重要改革与创新举措。科达回收从实今日热点新东方上线东方甄选直播滴滴延长员工股票禁售期1工信部回应steam主域名被拉黑没有收到相关通知12月28日,记者发现Steam的主域名被工信部列入黑名单。工信部工作人员在采访中回应并不清楚该域名被拉黑的原因,但肯定是有违法违抓住新一代移动通信发展新机遇来源人民网人民日报现阶段处于5G商用推进与6G研究布局的叠加期,要大力推进5G商用成熟和技术演进,为发展好6G架桥铺路,积极开展全球6G技术交流合作,主动抓住新一代移动通信发展的新从薇娅逃税,到王力宏,再到联想柳传志,你的纯真还剩多少?这个提问者太能联想了。王力宏那是如假包换的美国人,他如果违反了法律法规的话,就对他依法处理。他如果违反了道德的话,那就撵出中国,让他滚回他的美国去。薇娅偷逃税的行为,已经被处罚了。怎么做一个微信小程序?一站传媒公司微信小程序搭建制作真的那么重要吗?据业内人士透露,今朝,小程序天天以23000多的速率连续增加了近一个月,为什么小程序受到云云多的商家追捧。小程序真的那么紧张吗?小程序纯国产!紫光发布两款6nm芯片中兴海信首发昨日晚间,国产芯片厂商紫光展锐举办线上芯片发布会,正式带来了唐古拉T770和唐古拉T760两款芯片,并宣布实现了量产,将会应用在不同品牌的终端上。唐古拉T770和唐古拉T760这两雅迪ET300D三轮乘用车评测最大可配60V58Ah电池,续航100公里今年以来,随着市场需求不断扩大,三轮乘用车市场快速发展,而各大车企也都加大对这类车型的打造力度。不过,从推出的车型来看,很多三轮乘用车都存在同一个问题,那就是续航短。对此,有用户问荣耀X30骁龙695,定价终于良心了?本月新款荣耀X30,还没开售就引起很多人的关注。荣耀X30正面屏幕采用6。81英寸LCD材质中置挖孔设计,分辨率23881080像素。前置摄像头像素为1600W。屏幕支持120Hz2021年12月28日百度大裁员内幕YY财务爆雷成导火索近日,据新浪科技报道称,百度正在进行一轮大规模裁员,直播业务裁员比例90,游戏部门300多人几乎全部被裁。百度副总裁移动生态用户增长部总负责人互动
40岁,在五线城市是选择当律师还是老师,请大家帮忙分析一下?做自己擅长的事,不要跟风,五线城市应该节奏不是太快,这两种职业应该都有好市场。在五线城市没有一定的资源千万不要当律师,律师都跟法院法官有千丝万缕的联系的。首先,五线城市空间比较小,联想的柳传志可以倒但是联想集团不能倒岭南之锋202201201220搞笑,一波一波的自媒体,跟着莫莫男老师打着爱国旗号,割着流量的韭菜,非要把联想整死,然后让戴尔,让东芝,索尼乘虚而入,都以为我们是爱国呢?其实最后我支付宝今年怎么还没有集五福啊?有没有没注意,但是我对它兴趣不大,折腾来折腾去,到手的钱不够买两个包子。因为现在马云自己要集五福了。这个问题很有趣,说明你对新闻不关注。1,阿里巴巴创始人马云11月2日被中国人民银非常规作业商业尽调员在投资业一个真实而矛盾的商业世界。采访丨陈晶实习生张梓清文丨陈晶编辑丨宋玮1000种骗局一家管理规模超过25亿美元的头部美元基金,合伙人每年要看超过250个项目,看了十年,让他觉得最匪夷所2025年的智慧课堂,也许就是这个模样人类正在步入智能时代,智能技术引发的课堂革命既是历史的选择,也是历史的必然。智能技术作为一种具有自适应自进化双向互动等特征的新技术形态,其影响是多方面的,将其融入课堂教学的各个环节瑞风新能源与长城华冠在新碳纤维物料电动车电池管理等方面建立全面合作关系瑞风新能源1月19日晚间在港交所公告,公司与长城华冠订立了战略合作协议,在新碳纤维物料电动车电池管理智能汽车控制系统新能源储备新能源设备制造及相关业务范围的业务发展潜在股本投资及集58同城招聘业务再梳理赶集网品牌重塑为赶集直招新京报贝壳财经讯(记者陈维城)1月20日,58同城宣布,旗下赶集网正式重塑为专注招聘市场的赶集直招,以企业直招为核心特点,依托于企业直播企业实勘短视频探店AI面试间等智能化技术,连iPhone14Pro渲染图摩斯密码屏4800万,依然是库克创收的杀手锏iPhone14系列的相关新闻也是越来越多,同时很多的设计信息也得到了曝光。作为四款机型中的高配版本,iPhone14Pro的热度也是居高不下。毕竟iPhone14Pro是次顶配机难怪成本年年涨!怒,外媒爆Google和Facebook操控线上广告业务据华盛顿消息称,由美国各州政府发起的反垄断诉讼中,Google与Meta(原名Facebook)被指控联手操纵线上广告销售业务。起诉书中指出,两家公司的首席执行官均知晓此项交易,并15。3RC发布!苹果快升级iOS15修补安全漏洞在苹果看来,iOS15更新大家应该赶快升级了(符合条件),这也是为什么关闭iOS14的原因之一吧。苹果公司在发布iOS15时修补了两个重要的安全漏洞,这些漏洞有可能将用户的私人Ap企业微信发送企业群告警发送告警消息funcQYWechatSendMessage(accessTokenstring,reqSendMessageReq)(rspSendMessageRsp,errer