سجل اعتراضًا مع واجهة Castle Fluent
-
24-09-2019 - |
سؤال
أحاول التنفيذ معاملة Nhibernate معالجة من خلال التقاطعات ولم تستطع معرفة كيفية تسجيل الواجهة من خلال آلية بطلاقة.
أرى أ
Component.For<ServicesInterceptor>().Interceptors
ولكن لست متأكدًا من كيفية استخدامه. يمكن للشخص مساعدتي؟ هذا المثال بدا معقدا قليلا.
المحلول
أنت تفعل ذلك في خطوتين:
- تحتاج إلى تسجيل المعترض كخدمة في الحاوية:
container.Register(Component.For<MyInterceptor>());
- يمكنك تسجيل المكون الذي تريد اعتراضه. استخدام
Interceptors
الطريقة على واجهة برمجة تطبيقات بطلاقة يمكنك تحديد أي من المقاطعات المسجلة (حسب المفتاح ، أو النوع) الذي تريد اعتراض هذا المكون مع:
container.Register(Component.For<IFoo>().ImplementedBy<Foo>() .Interceptors<MyInterceptor>());
يرى وثائق لمزيد من التفاصيل.
نصائح أخرى
قم أولاً بتسجيل المعترض:
container.Register(Component.For<IDbInterceptor>().ImplementedBy<DbInterceptor>().Named("transactionInterceptor"));
ثم سجل الاعتراض على الاعتراض:
Container.register (component.foru003CIMyService> ().التي تنفذهاu003CMyService> (). اسم ("myservice"). اعتراضات (اعتراضية جديدة ("TransactionInterceptor")). في أي مكان) ؛
لا تنتمي إلى StackOverflow