如何在运行时使用refaction类仅获取类中的所有Web方法

本文关键字:方法 Web 获取 运行时 refaction | 更新日期: 2023-09-27 18:25:08

我在特定类中继承webservice,并且在运行时,我希望仅获取在特别类中继承的webservice类中声明的所有Web方法。。。我只想从继承webservice类的类中获取webmethod。。

如何在运行时使用refaction类仅获取类中的所有Web方法

您可以使用反射来获取类的所有方法,然后查看哪些方法具有[OperationContract]属性。您可以使用linq在一条语句中完成此操作,如下所示:

var methods = typeof(Service1).GetMethods()
                              .Where(meth => meth.GetCustomAttributes(true)
                                                 .Where(attr => attr is OperationContractAttribute)
                                                 .Count() > 0);

通过在GetCustomAttributes中为bool标志指定"true",代码将从方法的整个继承链中提取属性。