Spring.NET è basato sulla versione 2.0 del .NET Framework quindi permette l' utilizzo dei generics. Vediamo subito un paio di esempi per capire la sintassi, cominciamo dichiarando e creando una semplice lista di interi:
<object id="ListInteger"
type="System.Collections.Generic.List<int>" />
per istanziare la collection utilizzeremo questa riga di codice:
List<int> _col1 = (List<int>)_ctx.GetObject("ListInteger");
adesso dichiariamo una collection Dictionay con il tipo chiave string e il tipo valore object:
<object id="DictionaryStringObject"
type="System.Collections.Generic.Dictionary<string,object>" />
di seguito il codice per istanziarla:
Dictionary<string, object> _col2 = (Dictionary<string, object>)_ctx.GetObject("DictionaryStringObject");
Come possiamo vedere dagli esempi l'unica cosa da fare per definire un tipo generico è sostituire il bracket di sinistra con la stringa < . La sintassi è un po ostica, soprattutto quando dobbiamo definire oggetti complessi, magari composti da altri oggetti annidati come per esempio una collezione Dictionary<string,<Dictionary<int,object>>, la quale risulterà così:
<object id="DictionaryStringDictionaryIntObject"
type="System.Collections.Generic.Dictionary<string,System.Collections.Generic.Dictionary<int,object>>" />
in questi casi possiamo ricorrere all'aiuto dei Type Aliases, dei quali parlerò nel prossimo post.
Technorati Tags:
Spring.NET