我正在尝试通过反射输出对象图。其中有几个通用类型(列表,字典)。我不知道它们包含的类型(字符串,对象等),但想要列出它们(使用.ToString())。
那么,有没有一种通用的方法可以以通用方式输出通用列表/字典,即不必为每个键<->值组合编写重载函数?
我认为这将在.NET 4.0中实现,但目前还没有到来。。
那么,有没有一种通用的方法可以以通用方式输出通用列表/字典,即不必为每个键<->值组合编写重载函数?
我认为这将在.NET 4.0中实现,但目前还没有到来。。
如果你正在使用反射,泛型会变得非常棘手。你能否简单地使用非泛型接口?IDictionary
/IList
?这样会容易得多...就像这样:
static void Write(object obj) {
if (obj == null) { }
else if (obj is IDictionary) { Write((IDictionary)obj); }
else if (obj is IList) { Write((IList)obj); }
else { Console.WriteLine(obj); }
}
static void Write(IList data) {
foreach (object obj in data) {
Console.WriteLine(obj);
}
}
static void Write(IDictionary data) {
foreach (DictionaryEntry entry in data) {
Console.WriteLine(entry.Key + "=" + entry.Value);
}
}