3

構造マップのタイプのオブジェクトの特定のインスタンスを登録したいのですが、どうすればできますか?

例えば、

私がする時:

var myObj = ObjectFactory.GetInstance(typeof(MyAbstractClass));

次のように作成した、以前に構築された具象クラスを返すようにしたいと思います。

var myClass = new MyConcreteClass("bla"); // MyConcreteClass : MyAbstractClass

それで

myObj == myClass

これを容易にするために myClass を structuremap に登録するにはどうすればよいですか?

ありがとう

アンドリュー

4

3 に答える 3

6

初期化でこれを行うと思います

        ObjectFactory.Initialize(x =>
        {
            x.ForRequestedType<MyAbstractClass>().TheDefault.IsThis(myClass);
        });

myClass は、返すオブジェクトのインスタンスです。

于 2008-12-16T18:14:07.747 に答える
4

具体的なインスタンスをデフォルトとして注入できます

ObjectFactory.Inject(typeof(MyAbstractClass), myClass);
于 2008-12-20T23:21:04.127 に答える
1

StructureMap では 3 つのメソッドが変更され、次のコードが機能するようになりました。

var emailService = new EmailService(ConfigurationManager.AppSettings[mykey]);

ObjectFactory.Initialize(x =>
{                
    x.For<IEmailService>().Use(emailService);
});
于 2014-07-30T20:16:55.977 に答える