J'essaie d'obtenir le nom de la propriété de classe et son type de données dynamiquement pour n'importe quelle classe afin que je puisse créer le modèle de schéma requis pour Db, par exemple. Google BigQuery. J'ai été capable d'obtenir le nom de la chaîne ou le nom de la propriété int, mais avec le tableau ou la liste de la classe personnalisée, je ne sais pas comment obtenir leur propriété et leur nom de classe.Nom de la propriété de classe et son type de données pour la sous-classe utilisant Reflection
Mon modèle est:
public class StateModel
{
public string State { get; set; }
public string Gender { get; set; }
public int Year { get; set; }
public string Name { get; set; }
public int Number { get; set; }
public int[] Items { get; set; }
public List<string> Values { get; set; }
public Coordinate[] OrdinateArray { get; set; }
public List<Coordinate> Ordinates { get; set; }
public Coordinate CoordinateObj { get; set; }
}
public class Coordinate
{
public int Point { get; set; }
public string Value { get; set; }
}
Ma méthode pour obtenir la propriété de classe est:
public static Dictionary<string, object> GetColumnFromClass<T>() where T : class, new()
{
Dictionary<string, object> fields = new Dictionary<string, object>();
T obj = new T();
var type = obj.GetType();
PropertyInfo[] properties = type.GetProperties();
foreach (var item in properties)
{
fields.Add(item.Name, item.PropertyType.Name.ToUpper())
}
return fields;
}
Quelqu'un peut-il me aider comment obtenir Coordonnez les détails de classe à savoir (Nom du point et la valeur de la classe de coordonnées) à partir des propriétés ci-dessous:
public Coordinate[] OrdinateArray { get; set; }
public List<Coordinate> Ordinates { get; set; }
public Coordinate CoordinateObj { get; set; }
Remarque: J'avais besoin d'obtenir les détails de la sous-classe dynamiquement et pas codé en dur.
@DiskJunky ma question n'est pas de déterminer seulement si sa collection mais d'obtenir le nom de propriété de collection et son type de données aussi bien. J'ai clairement mentionné dans ma question –
comme ceci: https://stackoverflow.com/questions/5949688/how-to-iterate-the-list-in-reflection? – DiskJunky
@DiskJunky Désolé de ne pas itérer une liste. Cette classe est juste un type générique et j'ai besoin d'obtenir tous ses noms de propriétés et types de données et rien à voir avec la valeur de la propriété. J'apprecitae votre effort essayant d'aider mais ma question est simple comment obtenir le nom de propriété de sous-classe personnalisée et son type de données si cette classe est décarée comme classe simple, Liste <> ou []. –