Gernerischen Typ zur Laufzeit ermitteln

21/05/2008 - 12:25 von Ronald Rode | Report spam
Hallo NG,

ich habe folgendes Problem:
Ich habe eine Klasse mit einem generischen Rückgabe-Typenparameter. Diese
Klasse wird von der BindingList abgeleitet:

public class SearchableSortableBindingList<T> : BindingList<T>{
public SearchableSortableBindingList( IList<T> list )
: base( list )
{}
}

Wie man sieht wird der Klasse eine List<T> übergeben und wird auch
zurückgeliefert. Die Klasse soll nichts weiteres machen als die übergebene
Liste zu sortieren.
Nun ist mein Problem das ich die Klasse dynamisch aufrufen möchte und
deshalb nicht weiß von welchem Typen die Liste ist. Hat jemand eine Idee wie
ich das anstellen könnte?
Habe es schon mit
Acitvator.CreateInstance
versucht. Leider ohne Erfolg.

Hoffe ihr könnt mir helfen. Vielen Dank
 

Lesen sie die antworten

#1 Marvin Massih
21/05/2008 - 12:46 | Warnen spam
Hallo Ronald,

Ronald Rode schrieb:
ich habe folgendes Problem:
Ich habe eine Klasse mit einem generischen Rückgabe-Typenparameter. Diese
Klasse wird von der BindingList abgeleitet:

public class SearchableSortableBindingList<T> : BindingList<T>{
public SearchableSortableBindingList( IList<T> list )
: base( list )
{}
}



[...]
Nun ist mein Problem das ich die Klasse dynamisch aufrufen möchte und
deshalb nicht weiß von welchem Typen die Liste ist.



Was meinst du mit "dynamisch aufrufen"? Eine Instanz der Klasse
erstellen, die als T angegeben wurde?

Du kannst z.B. angeben, dass T einen Standardkonstruktor (also ohne
Parameter) besitzen muss, dann kannst du so etwas machen:

public T CreateInstance<T>( ) where T : new( )
{
return new T( );
}

Ansonsten beschreib noch mal genauer, was du machen möchtest.

Gruß
Marvin

Ähnliche fragen