1

私は次のクラスを宣言しています:

public class SeedData
{
    private IUow _uow;

    public SeedData(IUow uow)
    {
        _uow = uow;
    }

}

とブートストラッパーで:

container.RegisterType<IUow, Uow>();

私のコードは次のようなインスタンスを宣言しようとします:

var a = new SampleData.EF.SeedData();

ただし、次のメッセージが表示されます。

Error 
'SampleData.EF.SeedData' does not contain a constructor that takes 0 arguments  

IoCにUowのインスタンスを作成させるために私ができることを誰かが説明できますか?私はこれを間違った方法で行っていますか?

4

2 に答える 2

4

SeedDataまた、コンテナに入れる必要があります。

container.RegisterType<SeedData>();

そして、電話してください:

var a = container.Resolve<SeedData>();

で直接作成する代わりにnew。このようにして、コンテナはIUow自動的に注入します。

于 2013-03-25T07:39:35.937 に答える
0

パブリックコンストラクターを追加するときは、パラメーターなしでデフォルトのコンストラクターをオーバーライドします。コンテナーからオブジェクトを取得する、パラメーターなしのパブリックコンストラクターを追加してみてください

于 2013-03-25T07:36:01.940 に答える