我有一个消息检查器,我正在尝试获取当前端点的合同类型。我想反思类型,但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会这样做。还有其他方法可以得到它吗?
答案 0 :(得分:3)
您可以通过以下方式找到正确的类型:
OperationContext.Current.EndpointDispatcher.DispatchRuntime.Type
请参阅MSDN: DispatchRuntime.Type - Gets or sets the contract type