J'essaie de comprendre comment convertir un tableau arbitraire ou une collection à une chaîne par réflexion et il me rend fou ... NUTS ... Je suis à peu près yay près de mettre mon swingline rouge à travers l'écran d'ordinateur ici. Par exemple, étant donné un tableau d'objets Color, je veux la représentation par défaut de ce tableau (vous savez, délimité par des points-virgules ou autre) en utilisant un ArrayConverter ou un ColorConverter ou tout autre convertisseur approprié. Je peux le faire pour les types d'objets simples mais les collections m'échappent.Convertir C# Array en String en utilisant Reflection/Type de conversion
Voici comment j'arrête les propriétés d'un objet (arbitraire) en utilisant la réflexion. Comment puis-je convertir génériquement un tableau contenant des types arbitraires en une représentation de chaîne standard en utilisant le convertisseur approprié?
Type t = widget.GetType();
System.Reflection.PropertyInfo[] props = t.GetProperties();
foreach (PropertyInfo prop in props)
{
TypeConverter converter = TypeDescriptor.GetConverter(prop.PropertyType);
if (converter != null)
{
object o = prop.GetValue(widget, null);
att.Value = converter.ConvertToString(o);
// This returns some BS like "System.Array [2]"
// I need the actual data.
}
}
EDIT: Si j'essaie ceci:
att.Value = o.ToString();
Il retourne: "System.Drawing.Color []". Alors que je veux "255,202,101,127,127,127" ou quelle que soit la représentation de chaîne par défaut est utilisée par exemple dans un éditeur de propriétés.
Merci!
Si vous demandez les visualiseurs de débogage VS, je ne pense pas que ce soient en le CLR redistribuable. –