9

Simple Injectorでは、次のことができます。

container.RegisterSingle<IAuctionContext>(() => new AuctionContext(
    new Uri("http://localhost:60001/AuctionDataService.svc/")));

ここで行っているのは、IAuctionContextが見つかったら、これを新しい に置き換えるということAuctionContextです。問題は、 の呼び出しでRegisterSingle、 のインスタンスが 1 つしかAuctionContext使用されないことです。上記のようにパラメーターを渡すことができるようにしたいのですUriが、インスタンスは1つではなく、毎回新しいインスタンスを許可します。

これはどのように可能ですか?

4

1 に答える 1

18

挿入しようとしている値は、ハードコードされた単純な値です。ハードコードされた値や構成値などの定数値については、次のRegisterメソッドを使用してください。

var uri = new Uri("http://localhost:60001/AuctionDataService.svc/");

container.Register<IAuctionContext>(() => new AuctionContext(uri));

このRegisterメソッドは、毎回新しいインスタンスが返されるようにします。

アプリケーションの進行中に変更される可能性のある値を注入する場合は、ランタイム データの注入に関するこの記事をお読みください。

于 2012-12-06T20:19:45.343 に答える