Soit la chaine "string[]"
et a demandé à obtenir le type sous-jacent de cette classe, on pourrait commencer par:Comment obtenir le type de tableau .NET à partir de la chaîne "string []"?
private Type getTypeByName(string typeName)
{
if (typeName.EndsWith("[]"))
{
return something; // But what?
}
return Type.GetType(typeName);
}
Quel type est « string [] » et comment on ne réfléchit le type hors de lui?
De toute évidence, il y a un type System.String
et un type System.Array
, mais je ne vois pas comment ils peuvent se refléter « ensemble » comme vous le feriez normalement pour Nullable<T>
et son T avec la méthode MakeGenericType
.
Toute aide pour briser la boucle d'esprit dans laquelle je me suis embarqué sera grandement appréciée!
Ah, eh bien c'est assez juste. Mais que se passe-t-il si on vous donne "string []" comme entrée au lieu de "System.String []"? – tags2k
@tags: bien, 'string' est un mot-clé C#, ce n'est pas un type CLR/CTS donc vous ne pouvez pas vraiment vous attendre à ce que le CLR le sache. Si vous devez absolument l'utiliser, placez tous les mappages de type de mot-clé C# dans un dictionnaire et utilisez le dictionnaire pour remplacer ces types dans vos chaînes d'entrée. –
Je vois, mais je pense que je vais transmettre le mot-clé dictionnaire! Merci de votre aide. – tags2k