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
sekä metodit
Nimi Paluutyyppi Tehtävä
GetCustomAttributes object[] Palauttaa attribuutit
GetParameters ParameterInfo[] Palauttaa parametrien tiedot
Invoke object Kutsuu muodostinta (luo instanssin)

Instanssin luominen

Tyypistä voi luoda instanssin kutsumalla ConstructorInfo-luokan metodia Invoke
// 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);