Unityコンストラクターインジェクションを使用してEFObjectContextをインジェクトしようとしています。私の試みは、次のようにブートスラッパーにタイプを登録することです。
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType<ObjectContext, MyObjectContext>(new InjectionConstructor());
}
EFは、次のような複数のコンストラクターを作成します
public MyObjectContext() : base("name=MyObjectContext", "MyObjectContext")
public MyObjectContext(string connectionString) : base(connectionString, "MyObjectContext")
public MyObjectContext(EntityConnection connection) : base(connection, "MyObjectContext")
コードをデバッグするとき、UnityはResolutionFailedExceptionをスローして、「タイプMyObjectContextには長さ1のコンストラクターが複数あります。曖昧さを解消できません。」次のコンストラクターを持つ新しいクラスが解決されたとき。
public MainViewModel(UnityContainer container, MyObjectContext entities)
私が知る限り、RegisterType
withnew InjectionConstructor()
引数を使用すると、デフォルトのパラメーターなしコンストラクターが呼び出されます(これが私が望むものです)。Unityが期待どおりにタイプを解決できないのはなぜですか?私は何かが恋しいですか?
よろしくお願いします
ジェイ