سؤال

أحصل على استثناء من حل النداء:

KernelException: Could not instantiate custom activator
Inner Exception:
{"Constructor on type 'MyProj.MyAdapter`1[[MyProj.MyBusinessObject, MyAsm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' not found."}

هناك بالتأكيد مُنشئ عام بدون معلمات (وقد تحقق من ذلك باستخدام الانعكاس في وقت التشغيل) ... لذلك أعتقد أن المشكلة قد تتعلق بحقيقة أنها عامة؟ لقد حاولت الحصول على كائن نموذج المكون والإعداد يتطلب genericarguments إلى صواب ، لكن هذا لم يحصل على أي مكان.

أي مساعدة سيكون محل تقدير كبير! شكرًا.

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

المحلول

لا تستخدم Windsor مُنشئًا افتراضيًا لإنشاء المنشطات.

يرمي الإصدار الجديد رسالة استثناء أكثر فائدة:

Castle.MicroKernel.KernelException : Could not instantiate custom activator
  ----> System.ArgumentException : Type Castle.Windsor.Tests.ActivatorWithoutCorrectConstructor does not have a public constructor matching arguments of the following types:
Castle.Core.ComponentModel
Castle.MicroKernel.DefaultKernel
Castle.MicroKernel.ComponentInstanceDelegate
Castle.MicroKernel.ComponentInstanceDelegate

لذلك تحتاج إلى مُنشئ مثل هذا

public YourActivator(ComponentModel model, IKernel kernel,
                                    ComponentInstanceDelegate onCreation,
                                    ComponentInstanceDelegate onDestruction)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top