我有一个问题: 是否有一个基准场得到属性的一种优雅的方式。 即:

public class C1: Base
{
    [MyAttribute]
    public string Field1;
}
public class Base
{
    private void Do(ref string field)
    {
          if (field has attributes)
              DoSomething();
    }
} 

怎样才能得到一个字段属性的方法DO()?

预先感谢。

有帮助吗?

解决方案

有没有办法,你可以做到这一点ref string field签名。属性应用于声明(字段,类,事件等),而不是“实例”。

您的能有什么的做的,就是改变你的方法是这样的:

private void Do(Type fieldContainingType, string fieldName, ref string field)

和然后使用反射来检查fieldContainingType看,哪些属性被应用到字段中指定fieldName。然而这种方法,是极其脆弱,并且通常很不好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top