У меня есть служба WCF, и я хочу перехватывать метод CreateOrder всякий раз, когда он вызывается:
[ServiceContract]
public interface IOrderService
{
[OperationContract]
[CreateOrderCallHandlerAttribute]
void CreateOrder(string orderXML);
}
public class OrderService : IOrderService
{
public void CreateOrder(string orderXML)
{
// ...
}
}
CreateOrderCallHandlerAttribute наследуется от ICallHandler.
Итак, я использовал метод, описанный в этом посте: http://weblogs.asp.net/fabio/archive/2009/03/24/inversion-of-control-with-wcf-and-unity.aspx
Я использую файл конфигурации для настройки внедрения зависимостей для типов, от которых зависит служба. и как только контейнер Unity возвращается после загрузки файла конфигурации, я добавляю в него следующий код:
UnityConfigurationSection configuration = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
configuration.Containers.Default.Configure(Container);
Container.AddNewExtension<Interception>();
Container.Configure<Interception>().SetInterceptorFor<IOrderService>(new TransparentProxyInterceptor());
но перехватывающий код по-прежнему не вызывается при каждом вызове метода. что мне не хватает?