سؤال

أحاول التنفيذ معاملة 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")). في أي مكان) ؛

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top