运行时属性自定义
在开发过程中,尽管第三方供应商施加了限制,但仍会出现需要在运行时修改属性的情况。考虑一个具有如下属性的类:
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"; MessageBox.Show(attrs1[0].MyData);
保留未更改的属性值
需要注意的是,后续调用检索属性实例将不受运行时修改的影响:
ASCII[] attrs3 = (ASCII[]) typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); MessageBox.Show(attrs3[0].MyData); // Original value
以上是可以动态修改 .NET 运行时属性吗?的详细内容。更多信息请关注PHP中文网其他相关文章!