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

发布于 2024-09-28 08:34:14 字数 436 浏览 5 评论 0原文

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

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

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

我知道如何使用 int 索引器获取 Values 集合的项目(GetProperty() 和 GetValue() 函数可以做到这一点)。但是如何使用 .net 反射通过字符串键获取此 NameValueCollection 的项目?

Let's say I have a class, which has a NameValueCollection property.

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

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

I know how to get items of Values collection using int indexer (GetProperty() and GetValue() functions can do it). But how can I get item of this NameValueCollection by string key using .net reflection?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

享受孤独 2024-10-05 08:34:14
NameValueCollection coll;
var indexer = typeof(NameValueCollection).GetProperty(
    "Item",
    new[] { typeof(string) }
);
var item = indexer.GetValue(coll, new [] { "key" } );
NameValueCollection coll;
var indexer = typeof(NameValueCollection).GetProperty(
    "Item",
    new[] { typeof(string) }
);
var item = indexer.GetValue(coll, new [] { "key" } );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文