ConstructorInfo sisältää tietoa muodostimesta. Tyypin muodostimien tiedot saa Type -luokasta metodeilla GetConstructor ja GetConstructors.
GetConstructor -metodi ottaa parametrina Type[]-objektin, johon olisi tarkoitus laittaa muodostimen parametrien tyypit oikeassa järjestyksessä. Esim. luokka Tuote
public class Tuote
{
public int Id { get; set; }
public string Nimi { get; set; }
public decimal Hinta { get; set; }
public Tuote(string nimi, decimal hinta)
{
this.Nimi = nimi;
this.Hinta = hinta;
}
}
sisältää yhden muodostimen, jonka parametrien tyypit ovat string ja decimal. Tämän muodostimen tiedot voisi hakea koodilla
// haetaan tyyppi
Type tyyppi = typeof(Tuote);
// parametrien tyypit string ja decimal oikeassa järjestyksessä
Type[] parametrienTyypit = new[] { typeof(string), typeof(decimal) };
// haetaan muodostimen tiedot
ConstructorInfo ctorInfo = tyyppi.GetConstructor(parametrienTyypit);
GetConstructors palauttaa kaikkien muodostimien tiedot.
ConstructorInfo sisältää mm. ominaisuudet
Nimi | Tyyppi | Sisältö |
---|---|---|
DeclaringType | Type | Tyyppi, jonka muodostin on kyseessä |
IsAbstract | Boolean-tyyppi | Onko abstrakti |
IsPrivate | Boolean-tyyppi | Onko yksityinen |
IsPublic | Boolean-tyyppi | Onko julkinen |
IsStatic | Boolean-tyyppi | Onko staattinen |
Nimi | Paluutyyppi | Tehtävä |
---|---|---|
GetCustomAttributes | object[] | Palauttaa attribuutit |
GetParameters | ParameterInfo[] | Palauttaa parametrien tiedot |
Invoke | object | Kutsuu muodostinta (luo instanssin) |
// haetaan tyyppi
Type tyyppi = typeof(Tuote);
// muodostimen parametrien tyypit
Type[] parametrienTyypit = new[] { typeof(string), typeof(decimal) };
// haetaan muodostimen tiedot
ConstructorInfo ctorInfo = tyyppi.GetConstructor(parametrienTyypit);
// muodostimelle annettavat parametrit
object[] parametrit = new object[] { "Tuote 1", 99.90m };
// luodaan instanssi
Tuote t = (Tuote)ctorInfo.Invoke(parametrit);