And*_*rke 21 c# reflection types properties
我正在反映一个属性'Blah',它的Type是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());
}
Run Code Online (Sandbox Code Playgroud)
这给了我(正如你所期待的那样!)ICollection<string>......
但我真的想要收集类型即ICollection(而不是ICollection<string>) - 有谁知道我该怎么做呢?
Jos*_*rke 32
例如,您需要查看GetGenericTypeDefinition:
List<String> strings=new List<string>();
Console.WriteLine(strings.GetType().GetGenericTypeDefinition());
foreach (var t in strings.GetType().GetGenericArguments())
{
Console.WriteLine(t);
}
Run Code Online (Sandbox Code Playgroud)
这将输出:
System.Collections.Generic.List`1 [T]
System.String
SLa*_*aks 22
你正在寻找GetGenericTypeDefinition方法:
MessageBox.Show(pi.PropertyType.GetGenericTypeDefinition().ToString());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16093 次 |
| 最近记录: |