سؤال

أواجه حاليا مشكلة ، في محاولة لتوصيل مثيل اعتراض واحد بالضبط لكل مثيل واحد من الفئة التي يتم اعتراضها.

أنا خلق والمشورة في إنتروتوريجيستراتيونستراتيجي ووضع رد الاتصال لحل اعتراضية من النواة (لديه منشئ حقن).يرجى ملاحظة أنه يمكنني فقط إنشاء مثيل اعتراضية في رد الاتصال لأن اعتراضية ليس لديها إشارة إلى النواة نفسها.

            IAdvice advice = this.AdviceFactory.Create(methodInfo);
            advice.Callback = ((context) => context.Kernel.Get<MyInterceptor>());
            this.AdviceRegistry.Register(advice);

أنا الحصول على مثيل اعتراضية في الأسلوب.

هل هناك أي طريقة لإنشاء مثيل اعتراض واحد لكل مثيل نوع يتم اعتراضه?

كنت أفكر في النطاق المسمى ، لكن النوع المعترض والمعترض لا يشيران إلى بعضهما البعض.

هل كانت مفيدة؟

المحلول

هذا غير ممكن حيث يتم إنشاء معترض واحد لكل طريقة لجميع حالات الربط.

ولكن ما يمكنك فعله ليس تنفيذ رمز الاعتراض مباشرة في المعترض ولكن للحصول على مثيل لفئة تتعامل مع الاعتراض. Genacodicetagpre

نصائح أخرى

هل حاولت استخدام واجهة برمجة التطبيقات بطلاقة لتكوين اعتراضك?

Bind<IInterceptor>().To<MyInterceptor>().InSingletonScope();
Bind<IService>().To<Service>().Intercept().With<IInterceptor>();

ن. ب.ال Intercept() طريقة التمديد في Ninject.Extensions.Interception.Infrastructure.Language.ExtensionsForIBindingSyntax

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