Invest in people before investing in tools

Il blog di Matteo Baglini
posts - 118, comments - 95, trackbacks - 697

[Spring.NET #11]Spring.Core, Constructor Argument Resolution a Run-time

Oggi un mio amico mi ha chiesto se è possibile valorizzare a run-time i parametri di un costruttore invece di usare il file di configurazione. Certo che si può fare! Basta definire il nostro oggetto con un qualsiasi tipo di matching visti nei post precedenti ed in fine istanziare la classe utilizzando un particolare overload del metodo GetObject, il quale accentta in ingresso un array di object contenente i valori da passare al costruttore. Quindi il file di configurazione rimane invariato:

<object id="Matteo" 
        type="SpringSeries.Core.RuntimeMatching.Person, 09.RuntimeMatching">        
  <constructor-arg name="firstName" value="Matteo" />
  <constructor-arg name="age" value="24" />        
</object>

e la classe verrà istanziata così:

   1: object[] _ctorArgs = new object[2];
   2: _ctorArgs[0] = "Matteo a Run-time";
   3: _ctorArgs[1] = (short) 24;
   4:  
   5: Person _person = (Person)_ctx.GetObject("Matteo", _ctorArgs);

stampando le proprietà a video vedremo che il FirstName sarà Matteo a Run-time.

Technorati Tags:

Print | posted on lunedì 17 settembre 2007 23:59 | Filed Under [ .NET OpenSource Spring.NET ]

Powered by:
Powered By Subtext Powered By ASP.NET