Получить методы ServiceContract от WCF

Я хочу перечислить все методы из службы WCF, которая имеет атрибут "OperationContractAttribute"

Для этого я использую следующий код:

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();

Итак, OperationContractAttribute указывается в интерфейсе (IClassA), и когда я пытаюсь найти этот атрибут метода в классе ClassA, он не может его найти, однако я указал флаг true для метода GetCustomAttributes для поиска предков

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;
                }
            }
webMethods = service.GetInterface(serviceContract).GetMethods().Where(
    method => method.GetCustomAttributes
      (typeof(OperationContractAttribute)).Any())
      .ToList();
Другие вопросы по тегам