PropertyInfo.GetValue()如何使用C#中的反射按字符串索引集合?

时间:2010-10-19 20:15:59

标签: .net reflection collections indexing

假设我有一个类,它有一个NameValueCollection属性。

public class TestClass
{
    public NameValueCollection Values { get; private set; }

    public TestClass()
    {
        Values = new NameValueCOllection();
        Values.Add("key", "value");
        Values.Add("key1", "value1");
    }
}

我知道如何使用int indexer(GetProperty()和GetValue()函数来获取Values集合的项目)。但是如何使用.net reflection?

通过字符串键获取此NameValueCollection的项目

1 个答案:

答案 0 :(得分:2)

NameValueCollection coll;
var indexer = typeof(NameValueCollection).GetProperty(
    "Item",
    new[] { typeof(string) }
);
var item = indexer.GetValue(coll, new [] { "key" } );