インスタンス化ウィンザーカスタムコンポーネントアクティベーターすることはできません

StackOverflow https://stackoverflow.com/questions/3026806

質問

私は例外呼び出し解決を取得しています:

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

は、公開パラメータなしのコンストラクタは間違いなくそこにあります(と私は、実行時にリフレクションを使用して、これを確認した)...私はこの問題は、それがジェネリックだという事実に関係している可能性があります理解して?私は、コンポーネントモデルオブジェクトを取得し、trueにRequiresGenericArgumentsを設定しようとしたが、それはどこでも私をもらっていません。

任意の助けもいただければ幸いです!おかげます。

役に立ちましたか?

解決

ウィンザーはインスタンス化活性剤にデフォルトコンストラクタを使用していません。

新しいバージョンは、より有用例外メッセージをスローします

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