2009-05-11 8 views
1

Je suis nouveau sur spring.net, et je suis impatient de créer une liste d'objets. La liste est initialisé par une boucle qui appelle.Création de nouveaux objets avec SPRING.Net

  • IObj obj = (IObj) ContextRegistry.GetContext() GetObject ("obj")

  • modifier les propriétés d'objet ....

  • ajouter à la liste ...

le problème est: Je continue à obtenir le même objet à chaque étape de la boucle si Je reçois une liste du même objet

Répondre

3

Si vos définitions d'objets ne sont pas des singletons, alors vous obtiendrez un nouvel objet à chaque fois. Notez que, par défaut, singleton est défini sur true, vous devez donc le définir explicitement sur false.

Par exemple, si vous utilisez des fichiers xml pour configurer vos objets, définissez l'attribut singleton false:

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

On ne sait pas ce que vous essayez d'atteindre en boucle sur la « GetObject (» obj ")" méthode. Peut-être que vous pouvez poster le code de boucle?

Ce que "GetObject (" obj ")" fait est de demander au conteneur pour l'objet avec le nom "obj". Vous avez déclaré que vous souhaitez modifier les propriétés de l'objet et l'ajouter à une liste. Ceci est quelque chose que le conteneur peut faire pour vous: définir les propriétés d'un objet: http://www.springframework.net/doc-latest/reference/html/objects.html#objects-simple-values Créer une liste: http://www.springframework.net/doc-latest/reference/html/objects.html#objects-collections-values

Cette liste peut être injecté dans un objet que vous choisissez.

Si vous voulez juste des objets non-singleton de votre IObj, la réponse des naders est correcte. Le printemps appelle ces objets "singuliers" des prototypes. Vous trouverez un aperçu des oscilloscopes disponibles ici: http://www.springframework.net/doc-latest/reference/html/objects.html#objects-factory-scopes

+0

Bon point. Le résultat final pourrait bien être quelque chose que le conteneur peut fournir. Le seul avertissement ici serait d'éviter de rendre les choses plus compliquées qu'elles ne devraient l'être. Parfois, juste parce que le conteneur * peut * faire quelque chose, ne signifie pas que vous devriez l'utiliser. Il peut être plus simple de faire la boucle + modifier + ajouter du code, et juste parce que son code, et non le printemps xml ne fait pas une mauvaise chose. Mais tout dépend de ce que l'objectif final est - et maintenant je suis curieux ... –