如何获取当前端点合同的类型?

时间:2011-11-17 16:15:51

标签: c# wcf

我有一个消息检查器,我正在尝试获取当前端点的合同类型。我想反思类型,但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 个答案:

答案 0 :(得分:3)

您可以通过以下方式找到正确的类型:

OperationContext.Current.EndpointDispatcher.DispatchRuntime.Type

请参阅MSDN: DispatchRuntime.Type - Gets or sets the contract type