检查服务和运营合同的属性/行为

时间:2011-03-02 07:31:22

标签: wcf

以编程方式了解操作和服务的属性/行为的方法是什么。

例如:从一个操作我想打印服务的AddressFilterMode,ConcurrencyMode等,以及Operation的Impersonation,TransactionAutoComplete等属性。

2 个答案:

答案 0 :(得分:2)

您需要获取获取ServiceBehaviorAttributeDispatchOperation个实例并使用其属性。

var serviceBehavior = OperationContext.Current.Host.Description.Behaviors.Find<ServiceBehaviorAttribute>();

var operations = OperationContext.Current.EndpointDispatcher.DispatchRuntime.Operations;
string currentOperationAction = OperationContext.Current.IncomingMessageHeaders.Action;
DispatchOperation currentOperation = ( from o in operations
                                       where o.Action == currentOperationAction
                                       select o ).FirstOrDefault();

答案 1 :(得分:1)

该方法称为Reflection。您将获得当前类型(服务),您将探索其属性=&gt;您将获得例如地址过滤器模式,并发模式和实例上下文模式。您可以对操作,服务合同等进行相同的操作。