Comment faire pour déterminer si un type d'objet est un construit dans le système de type

Je suis en train d'écrire un simple List<t> CSV converter. Mon convertisseur vérifie tous les t's dans la Liste et s'empare de toutes les propriétés publiques et les place dans le fichier CSV.

Mon code fonctionne très bien (comme prévu) lorsque vous utilisez une classe simple avec un peu de propriétés.

Je voudrais obtenir le List<t> CSV de convertisseur à accepter aussi le Système de types tels que String et Integer. Avec ces types de système, je ne veux pas obtenir leurs propriétés publiques (telles que la Longueur, Caractères, etc). Donc je voudrais vérifier si l'objet est un type de Système. Par type de Système, je veux dire celle du construit en .Types de réseau tels que string, int32, double etc.

À l'aide de GetType() je peux trouver de la manière suivante:

string myName = "Joe Doe";

bool isPrimitive = myName.GetType().IsPrimitive; //False
bool isSealed = myName.GetType().IsSealed; //True 
//From memory all of the System types are sealed.
bool isValueType = myName.GetType().IsValueType; //False

//LinqPad users: isPrimitive.Dump();isSealed.Dump();isValueType.Dump();

Comment puis-je savoir si la variable monnom est construit dans le type de Système? (en supposant que nous ne savons pas ses une chaîne de caractères)

  • Que considérez-vous comme un type de système et ce n'est pas?
  • Je ne connais pas la terminologie correcte, mais je considère string, int32 à un type de système et Employee n'est évidemment pas. Fondamentalement, n'importe quel type qui n'a pas été créé par le compilateur.
  • Vous recherchez uniquement des types intégrée dans le compilateur? Ou tous les types de l' System espace de noms?
  • ohh je vois où vous allez, il suffit de comparer l'espace de noms racine "Système"?
InformationsquelleAutor Jeremy | 2011-05-09