ユニティコンストラクタインジェクションを使用してEF ObjectContextをインジェクトしようとしています。 マイattempは、このようなbootsprapperでタイプを登録することですが:ユニティ:複数のコンストラクタを持つコンストラクタインジェクション
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType<ObjectContext, MyObjectContext>(new InjectionConstructor());
}
EFは、私のコードのUnityは私に言っResolutionFailedExceptionをスローデバッグする場合、これらの
public MyObjectContext() : base("name=MyObjectContext", "MyObjectContext")
public MyObjectContext(string connectionString) : base(connectionString, "MyObjectContext")
public MyObjectContext(EntityConnection connection) : base(connection, "MyObjectContext")
のように見えるみとめコンストラクタを作成する「タイプのMyObjectContext長さ1のコンストラクタが複数あります。明確にすることはできません。次のコンストラクターを持つ新しいクラスが解決されたときに発生します。
public MainViewModel(UnityContainer container, MyObjectContext entities)
は限り引数は、デフォルトのパラメータなしのコンストラクタが呼び出されることを保証として、私はnew InjectionConstructor()
とRegisterType
を使用して知っているように(私が欲しいもの厥)。 Unityが期待どおりに型を解決できないのはなぜですか?私は何かが欠けていますか?
よろしく
ジェイ
それは解決策に私を導いたので、私は答えとしてこれをマーク。私は間違った場所に登録していたので、Unityはタイプを解決するいくつかの問題を抱えていたようです。コンテナを渡したのは、プロジェクト(シェル、モジュール、インフラストラクチャなど)全体で登録されたインスタンス/タイプを解決する必要があると思ったからですが、それは正しい/働く方法ではないようです。 – Jay