0

我想列出具有“OperationContractAttribute”属性的 WCF 服务中的所有方法

为此,我使用以下代码:

var service = assembly.GetType(typeName);
        if (service == null)
            return webMethodsInfo;
        var methodsInfo = service.GetMethods();
        webMethods = methodsInfo.Where(method => method.GetCustomAttributes
             (typeof(OperationContractAttribute), true).Any()).ToList();

因此,在接口(IClassA)中指定了 OperationContractAttribute,当我尝试在 ClassA 类中搜索此方法属性时,它找不到它,但是我为方法 GetCustomAttributes 指定了标志 true 以搜索祖先

4

2 回答 2

1

这会做

 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;
                }
            }
于 2013-01-30T10:41:12.827 回答
0
webMethods = service.GetInterface(serviceContract).GetMethods().Where(
    method => method.GetCustomAttributes
      (typeof(OperationContractAttribute)).Any())
      .ToList();
于 2013-01-30T10:58:25.603 回答