2009-05-11 6 views
1

私はspring.netで新しく、リスト<>オブジェクトを作成しています。 リストを呼び出すループによって初期化される:。SPRING.Netで新しいオブジェクトを作成する

  • IObj OBJ =(IObj)ContextRegistry.GetContext()のGetObject( "OBJ")

  • 変更オブジェクトのプロパティ....

  • リストに追加...

問題がある:私は、同じオブジェクトにループ 程度のすべてのステップを得続けます

答えて

3

オブジェクト定義がシングルトンでない場合は、毎回新しいオブジェクトを取得します。デフォルトでは、シングルトンはtrueに設定されているため、明示的にfalseに設定する必要があります。例えば

、あなたのオブジェクトを設定するには、XMLファイルを使用している場合は、falseにシングルトン属性セット:あなたが「のGetObject(」をループにより達成しようとしているものは明らかではない

<object name="name" type="..." singleton="false"/> 
2

をobj ")"メソッド。おそらくあなたはループコードを投稿することができますか?

"GetObject(" obj ")とは、コンテナに名前が" obj "のオブジェクトを要求することです。あなたは、オブジェクトのプロパティを変更してリストに追加したいと述べました。これは、コンテナがあなたのために行うことができるものです:リストを作成します http://www.springframework.net/doc-latest/reference/html/objects.html#objects-simple-values : オブジェクトのプロパティを設定し http://www.springframework.net/doc-latest/reference/html/objects.html#objects-collections-values

このリストには、選択したオブジェクトに注入することができます。

あなたのIObjの非シングルトンオブジェクトだけを望むなら、nadersの答えは正しいです。 Springはこれらの非シングルトンオブジェクトを "プロトタイプ"と呼びます。使用可能なスコープの概要については、こちらをご覧ください。http://www.springframework.net/doc-latest/reference/html/objects.html#objects-factory-scopes

+0

良い点。最終的な結果は、コンテナが提供できるものである可能性があります。 ここで注意するのは、必要以上に複雑なものにならないようにすることだけです。場合によっては、コンテナが何かを行うことができるからといって、それを使うべきではありません。コード内でループ+修正+追加を行う方が簡単かもしれません。なぜなら、そのコードはバネxmlではなく悪いことではないからです。 これはすべて最終目標が何であるかに依存しています - そして今私は好奇心が強いです... –

関連する問題