我正在反映一个属性“Blah”,其类型是 ICollection
public ICollection<string> Blah { get; set; }
private void button1_Click(object sender, RoutedEventArgs e)
{
var pi = GetType().GetProperty("Blah");
MessageBox.Show(pi.PropertyType.ToString());
}
这给了我(正如你所期望的!)ICollection<string>
...
但我真的想获得集合类型,即ICollection
(而不是ICollection<string>
) - 有人知道我该怎么做吗?
你会想看看获取通用类型定义 http://msdn.microsoft.com/en-us/library/system.type.getgenerictypedefinition.aspx例如:
List<String> strings=new List<string>();
Console.WriteLine(strings.GetType().GetGenericTypeDefinition());
foreach (var t in strings.GetType().GetGenericArguments())
{
Console.WriteLine(t);
}
这将输出:
System.Collections.Generic.List`1[T]
系统字符串
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)