У меня есть собственный атрибут, который я хочу применить к каждому методу в моей службе WCF.
Я продолжаю так:
[MyAttribute]
void MyMethod()
{
}
Проблема в том, что мой сервис содержит сотни методов, и я не хочу писать [Атрибут] выше всех них. Есть ли способ применить атрибут ко всем моим методам в моем сервисе?
Вот подпись моего атрибута:
//[AttributeUsage(AttributeTargets.Class)]
public class SendReceiveBehaviorAttribute : Attribute, /*IServiceBehavior,*/ IOperationBehavior
РЕДАКТИРОВАТЬ после ответа Алиостада:
Я пробовал это:
public void ApplyDispatchBehavior(ServiceDescription desc, ServiceHostBase host)
{
foreach (ChannelDispatcher cDispatcher in host.ChannelDispatchers)
{
foreach (EndpointDispatcher eDispatcher in cDispatcher.Endpoints)
{
foreach (DispatchOperation op in eDispatcher.DispatchRuntime.Operations)
{
op.Invoker = new OperationInvoker(op.Invoker);
}
}
}
}
А это:
public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters)
{
foreach (ChannelDispatcher cDispatcher in serviceHostBase.ChannelDispatchers)
{
foreach (EndpointDispatcher eDispatcher in cDispatcher.Endpoints)
{
foreach (DispatchOperation op in eDispatcher.DispatchRuntime.Operations)
{
op.Invoker = new OperationInvoker(op.Invoker);
}
}
}
}
Но это все равно не работает.