Зарегистрируйте перехватчик с помощью блока свободно замка

StackOverflow https://stackoverflow.com/questions/2575570

Вопрос

Я пытаюсь осуществить Обработка транзакции Nhibernate Через перехватчики и не могли понять, как зарегистрировать интерфейс через свободный механизм.

я вижу

Component.For<ServicesInterceptor>().Interceptors

Но не уверен, как его использовать. Кто-нибудь может мне помочь? Этот пример казалось немного сложным.

Это было полезно?

Решение

Вы делаете это в два шага:

  • Вам необходимо зарегистрировать перехватчик в качестве услуги в контейнере:
container.Register(Component.For<MyInterceptor>());
  • Вы регистрируете компонент, который вы хотите перехватить. С использованием Interceptors Метод Fluent API Вы указываете, какие из зарегистрированных перехватчиков (по ключам или типу) вы хотите перехватить этот компонент с:
container.Register(Component.For<IFoo>().ImplementedBy<Foo>()
   .Interceptors<MyInterceptor>());

Видеть Документация Больше подробностей.

Другие советы

Первый зарегистрируйте перехватчик:

container.Register(Component.For<IDbInterceptor>().ImplementedBy<DbInterceptor>().Named("transactionInterceptor"));

Затем зарегистрируйте объект, перехваченный:

контейнер. Регистрация (компонент. for.u003CIMyService> () .Implementedby.u003CMyService> (). Благодаря («MyService»). Перехватчики (новый перехватчикReference («транзакзактограмм»)). Где угодно);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top