动态更改属性参数
是否可以在运行时修改属性参数并不是立即显而易见的。例如,考虑第三方供应商提供的以下类:
public class UserInfo { [Category("change me!")] public int Age { get; set; } [Category("change me!")] public string Name { get; set; } }
您意识到提供的类别描述不准确,并希望在不改变原始代码的情况下对其进行修改。如何实现这一点?
动态修改属性实例
事实证明,你确实可以在运行时修改属性实例值。属性实例是普通对象,允许不受限制的操作。以下步骤演示了如何操作:
从类型中检索属性实例:
ASCII[] attrs1=(ASCII[]) typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
修改检索到的属性的公共变量:
attrs1[0].MyData="A New String";
显示修改后的value:
MessageBox.Show(attrs1[0].MyData);
创建一个新的属性实例以验证原始值是否不变:
ASCII[] attrs3=(ASCII[]) typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); MessageBox.Show(attrs3[0].MyData);
这演示了以下功能:在运行时动态调整属性参数。
以上是属性参数可以在运行时动态更改吗?的详细内容。更多信息请关注PHP中文网其他相关文章!