c# - C#类的属性包

标签 c# reflection properties indexer propertybag

像 javascript 语言一样访问 c# 类属性将使生活变得更加轻松。

我们如何在 C# 中做到这一点?

例如:

someObject["Property"]="simple string";
Console.WriteLine(someObject["FirstName"]);

最佳答案

下面是如何通过添加几行代码在类中启用类似属性包的功能:

partial class SomeClass
{
    private static readonly PropertyDescriptorCollection LogProps = TypeDescriptor.GetProperties(typeof(SomeClass));

    public object this[string propertyName]
    {
        get { return LogProps[propertyName].GetValue(this); }
        set { LogProps[propertyName].SetValue(this, value); }
    }
}

关于c# - C#类的属性包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16131180/

相关文章:

C# WPF - 根据背景图像动态更改文本颜色

java - 如何在 Kotlin 中从 KClass 获取方法

c# - 自动实现的 getter 和 setter 与公共(public)字段

objective-c - iOS:属性——分配和释放对象

c# - 修改引用类型参数的方法不好吗?

C# Interop - 释放在非托管代码中分配的内存

c# - .NET Windows 服务的奇怪问题

swift - Xcode 6.3 中不允许 NSObject 的 hash() 和 description()

c# - 使用反射测试抽象类的私有(private)方法

python - 如何制作类属性?