WCF - 如何从行为中检查服务合同接口?

时间:2017-03-20 20:02:20

标签: c# wcf

我有一些行为,我按属性申请服务合同。这些行为收集用于记录/故障排除的诊断信息,并且通常适用于我们所有的WCF合同。我现在遇到的问题是,我想在合同执行期间(在客户端和服务器端)收集一些参数值,这些参数值是基于应用于定义合同的接口中的方法参数的自定义属性。我没有在我使用过的任何检查员身上看到任何与MethodInfo或甚至我可以用来获取ParameterInfos的合同类型的合理连接。我曾考虑过定制调用者的可能性,但即便如此,似乎并没有我需要的一切?任何指导将不胜感激。从本质上讲,我希望能够在服务合同中找到类似这样的属性:

[ServiceContract, RecordDiagnostics]
public interface IFrameworkService
{
    [OperationContract]
    Boolean AddOrUpdateCatalogItemAssociation([DiagnosticProperty]InstanceId catalogItemId, CatalogItemAssociationInfo info);
}

1 个答案:

答案 0 :(得分:1)

我假设您在属性中实施IServiceBehavior。如果这是真的,那么Validate方法包含ServiceDescription参数。

serviceDescription.Endpoints.First().Contract.Type应该为您提供.NET类型信息 - 从那里您可以访问所有方法/属性。