Как получить тип текущего контракта с конечной точкой?

У меня есть инспектор сообщений, в котором я пытаюсь получить тип контракта для текущей конечной точки. Я хочу отразить тип, но GetType возвращает null.

var contractType = Type.GetType(OperationContext.Current.EndpointDispatcher.ContractName);
if (contractType != null)
{ foreach (var member in contractType.GetMembers()) { //do stuff }
}

Я предполагаю, что OperationContext.Current.EndpointDispatcher.ContractName содержит имя интерфейса вместо полного имени типа, которое не может получить тип. Моя конфигурация имеет полное имя типа, поэтому я не уверен, почему .NET это делает. Есть ли другой способ получить его?

1 ответ

Вы найдете правильный тип с помощью:

OperationContext.Current.EndpointDispatcher.DispatchRuntime.Type

См. MSDN: DispatchRuntime.Type - получает или задает тип контракта

licensed under cc by-sa 3.0 with attribution.