Pet*_*teH 2 .net c# reflection custom-attributes
想象一下,我有以下代码:
class A
{
[UsefulAttribute("foo")]
B var1;
[UsefulAttribute("bar")]
B var2;
...
}
class B
{
public string WriteSomethingUseful()
{
?????
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,它需要在什么代码中放入????? 这样,当我调用var1.WriteSomethingUseful时,我得到一个foo的输出,当我调用var2.WriteSomethingUseful时,我得到一个bar的输出?
我有一种感觉,这是一个非常直截了当的问题,我认为我的主要问题是我通过长时间的思考让自己陷入混乱状态!
说真的,我定义了UsefulAttribute,并意识到部分代码必须是GetCustomAttributes(typeof(UsefulAttribute)...)调用.我感到困惑的是如何在实际实例上而不是在类型级别上提取这些值.
非常感谢,皮特
这是不可能的.对于初学者来说,如果A的多个不同实例引用了同一个B,该怎么办?或者如果var1和var2都引用了同一个B实例怎么办?
在字段上设置属性时,将该属性附加到类A的类型,而不是存储在字段var1中的类B的实例.
解决此问题的常用方法是将数据存储为B的属性,通过属性设置器或构造函数参数进行设置,然后从WriteSomethingUseful方法访问该属性.
| 归档时间: |
|
| 查看次数: |
1250 次 |
| 最近记录: |