public IEnumerable<string> getmethodsOfReturnType(Type cls,Type ret){ var methods = cls.getmethods(BindingFlags.NonPublic); var retMethods = methods.Where(m => m.ReturnType.IsSubclassOf(ret)) .Select(m => m.name); return retMethods;}
它返回一个空的枚举器.
注意:我在ASP.NET MVC Controller上调用它来寻找ActionResults
getmethodsOfReturnType(typeof(ProductsController),typeof(ActionResult));解决方法 其他人已指出修复,但我想建议替代IsSubclassOf以及包括公共方法:
public IEnumerable<string> getmethodsOfReturnType(Type cls,Type ret){ // DID you really mean to prohibit public methods? I assume not var methods = cls.getmethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); var retMethods = methods.Where(m => m.ReturnType.IsAssignableFrom(ret)) .Select(m => m.name); return retMethods;}
使用IsAssignableFrom
,您不需要额外的“返回类型与所需类型完全相同”测试,并且它也可以使用接口.
以上是内存溢出为你收集整理的c# – 获取具有给定返回类型的所有方法全部内容,希望文章能够帮你解决c# – 获取具有给定返回类型的所有方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)