Зарегистрируйте перехватчик с помощью блока свободно замка
-
24-09-2019 - |
Вопрос
Я пытаюсь осуществить Обработка транзакции 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 («транзакзактограмм»)). Где угодно);