8
votes

Obtenir le nom de type de t avec réflexion

J'ai:

public class MyUserControl : WebUserControlBase <MyDocumentType>{...}


4 Réponses :


7
votes

Vous pouvez utiliser quelque chose comme ceci: xxx


0 commentaires

1
votes

Si vous êtes sur .NET 4.5:

typeof(MyUserControl).BaseType.GenericTypeArguments.First();


1 commentaires

C'est bon, mais il faut garder à l'esprit que la propriété GENDICICTYTYGUMUMES n'existe qu'à partir de .NET 4.5.



1
votes

Vous pouvez utiliser type.getgenericarguments méthode.

retourne un tableau d'objets de type représentant les arguments de type de un type générique ou les paramètres de type d'une définition de type générique.

comme xxx

puisque le type de retour de cette méthode est system.type [] , les éléments de tableau sont retournés dans le ordre dans lequel ils apparaissent dans la liste des arguments de type pour le type générique.


0 commentaires

3
votes

Il y a beaucoup de réponses montrant comment obtenir le type de t si vous savez que la classe dérive directement à partir de Webusercontrolbase . Voici comment le faire si vous voulez pouvoir monter la hiérarchie jusqu'à ce que vous rencontrez le webusercontrolbase : xxx

Puis continuer à obtenir t en réfléchissant sur les arguments de type générique de t .

Comme il s'agit d'un exemple et de code de production, je ' m ne manipulant pas le cas où t représente un type qui ne dérive pas de webusercontrolbase du tout.


0 commentaires