Fare il mapping di un Dictionary nella configurazione xml di Castle Windsor

datevenerdì 23 ottobre 2009 alle 23.25  - posted by Manuel Scapolan in Castle Project

Ecco come configurare in Castle Windsor un parametro di tipo Dictionary dove il valore associato alla chiave è un oggetto e non una semplice stringa. Nell'esempio seguente la classe PizzaShop riceve nel costruttore un parametro builders di tipo dictionary avente come chiave il tipo di pizza e come valore l'istanza della classe specializzata nella preparazione di quel tipo di pizza.

<components>
 <component id="pizza-shop"
        service="Windsor.Sample.IShop, Windsor.Sample"
        type="Windsor.Sample.PizzaShop, Windsor.Sample">
    <parameters>
       <builders>
        <dictionary>
           <item key="margherita">${margherita-pizzabuilder}</item>
           <item key="veggie">${veggie-pizzabuilder}</item>
        </dictionary>
       </builders>
    </parameters>
 </component>
 <component id="margherita-pizzabuilder"
        service="Windsor.Sample.IPizzaBuilder, Windsor.Sample"
        type="Windsor.Sample.MargheritaPizzaBuilder, Windsor.Sample">
 </component>
 <component id="veggie-pizzabuilder"
        service="Windsor.Sample.IPizzaBuilder, Windsor.Sample"
        type="Windsor.Sample.VeggiePizzaBuilder, Windsor.Sample">
 </component>
</components>

Ed ecco come è fatta nello specifico la classe PizzaShop dell'esempio:

public class PizzaShop : IShop
{
   private readonly Dictionary<string, IPizzaBuilder> _builders;
 
   public PizzaShop(Dictionary<string, IPizzaBuilder> builders)
   {
      this._builders = builders;
   }
}

tagsTags:

Commenti chiusi

About me

manuel scapolanSono un consulente informatico. Nel 2004 terminati gli studi in Ingegneria Informatica (1° livello), ho iniziato come freelance collaborando con una ditta di consulenza informatica ed una agenzia di marketing e comunicazione nello sviluppo di applicazioni web. Attualmente divido il lavoro di sviluppatore e progettista web con attività di formazione nel settore della programmazione.
View Manuel Scapolan's profile on LinkedIn

Follow me on Follow manuelscapolan on Twitter

Calendario


<<  settembre 2010  >>
lumamegivesado
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Disclaimer

Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati mediante:
creative commons
Attribuzione: Non commerciale
Condividi allo stesso modo. R.2.5

Books (a bit more about my library)

Domain Driven Design - Eric Evans Applying Domain-Driven Design and Patterns - Jimmy Nilsson Refactoring to Patterns - Joshua Kerievsky Design Patterns -  Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides Code Complete Second Edition - Steve McConnell Patterns of Enterprise Application Architecture - Martin Fowler Agile Principles, Patterns, and Practices in C# - Robert C. Martin xUnit Test Patterns - Gerard Meszaros Refactoring - Martin Fowler CLR via C# Second Edition - Jeffrey Richter Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries - Krzysztof Cwalina, Brad Abrams Don't make me think! - Steve Krug Bulletproof Ajax - Jeremy Keith

Manuel Scapolan Copyright © 2007 - 2010 - Tutti i diritti riservati - Powered by BlogEngine.NET 1.5.0.7 - silk icons by famfamfam - Time CET