无法提取属性数据

时间:2012-04-26 08:31:51

标签: c# reflection attributes

我正在尝试提取属性。属性是自定义属性。 enter image description here 但有些我无法使用object.id的东西 例如,我的注释代码adpter.id无效,即使您看到我已将该对象转换为其类型。

以下是属性的代码:

 [AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = true)]
 public class Adapter : Attribute
 {
    // This class implements the Adapter Attribite
    readonly int id;
    readonly string Title;
    public string Comment { get; set; }

    private string[] Relation;

    public Adapter(int id, string Title,string []relations)
    {
       this.id = id;
       this.Title = Title;
       this.Relation = relations;
    }


}

3 个答案:

答案 0 :(得分:4)

字段的默认可见性是私有的,请尝试公开idTitle 您还可以使用如下私有设置器将字段更改为属性:

public Id { get; private set; }
public Title { get; private set; }

或只读属性:

public Id { get { return id; }  }
public Title { get { return title; } }

因为创建公共字段被认为是糟糕的设计。

答案 1 :(得分:1)

你想从另一个班级读取id吗? 您缺少公共修饰符。

public readonly int id; 

缺少修饰符的变量,属性和方法将自动变为私有。

希望这有帮助!

答案 2 :(得分:1)

我想将一个类的默认行为作为私有成员,您可以尝试将其更改为public