Вопрос

Я получаю решение об вызове исключения:

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."}

Там определенно есть общедоступный конструктор без параметров (и я проверил это, используя отражение во время выполнения) ... поэтому я понял, что проблема, возможно, связана с тем, что это общий? Я пытался получить объект модели компонентов и настройки TransGenericarGuments для True, но это нигде не получилось меня.

Любая помощь приветствуется! Спасибо.

Это было полезно?

Решение

Виндзор не использует конструктор по умолчанию для экземпляров активаторов.

Новая версия бросает более полезное сообщение исключения:

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