以编程方式了解操作和服务的属性/行为的方法是什么。
例如:从一个操作我想打印服务的AddressFilterMode,ConcurrencyMode等,以及Operation的Impersonation,TransactionAutoComplete等属性。
答案 0 :(得分:2)
您需要获取获取ServiceBehaviorAttribute
和DispatchOperation
个实例并使用其属性。
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;您将获得例如地址过滤器模式,并发模式和实例上下文模式。您可以对操作,服务合同等进行相同的操作。