【发布时间】:2016-06-08 11:56:24
【问题描述】:
我正在使用 WPF 中的 WCF 服务,我想列出服务中的所有方法名称。
我尝试了两种解决方案, 1.
MethodInfo[] methods = typeof(TypeOfTheService).GetMethods();
foreach (var method in methods)
{
string methodName = method.Name;
}
它列出了所有函数,但还包括一些其他函数,例如“to string”、“open”、“abort”等。
2.
MethodInfo[] methods = typeof(ITimeService).GetMethods();
foreach (var method in methods)
{
if (((System.Attribute)(method.GetCustomAttributes(true)[0])).TypeId.ToString() == "System.ServiceModel.OperationContractAttribute")
{
string methodName = method.Name;
}
}
最终会出现错误,显示“索引超出范围”。
【问题讨论】:
-
你确定每个方法都有一个属性吗?
-
我会为此查询 WCF 框架元数据。它必须知道存在哪些确切的方法。
-
不,所有方法都没有该属性...这是它的显示数组,我想克服它。