如何将数据注释添加到分部类?

时间:2011-05-25 22:32:48

标签: c# .net data-annotations partial-classes

我有一个自动生成的类,上面有一个属性。我想在另一个相同类型的部分类中向该属性添加一些数据注释。我该怎么做?

namespace MyApp.BusinessObjects
{
    [DataContract(IsReference = true)]
    public partial class SomeClass: IObjectWithChangeTracker, INotifyPropertyChanged
    {
            [DataMember]
            public string Name
            {
                get { return _name; }
                set
                {
                    if (_name != value)
                    {
                        _name = value;
                        OnPropertyChanged("Name");
                    }
                }
            }
            private string _name;
    }
}

并在另一个文件中:

namespace MyApp.BusinessObjects
{
    public partial class SomeClass
    {
        private SomeClass()
        {
        }

        [Required]
        public string Name{ get; set; }
    }
}

目前,我收到一条错误消息,指出name属性已存在。

2 个答案:

答案 0 :(得分:17)

看起来我使用MetadataTypeAttribute找出了与上述链接类似的不同方式:

namespace MyApp.BusinessObjects
{
    [MetadataTypeAttribute(typeof(SomeClass.Metadata))]{
    public partial class SomeClass
    {
        internal sealed class Metadata
        {
            private Metadata()
            {
            }

            [Required]
            public string Name{ get; set; }
        }
    }
}

答案 1 :(得分:1)

我使用下面的内容也支持同一个表中引用同一个表的多个外键。例如,该人有两个父母(父亲和母亲),他们都是人类。

[MetadataTypeAttribute(typeof(SomeClassCustomMetaData))]
public partial class SomeClass
{

}

public class SomeClassCustomMetaData
{
    [Required]
    public string Name { get; set; }
    [InverseProperty("Father")]
    public virtual Parent ParentClass { get; set; }
    [InverseProperty("Mother")]
    public virtual Parent ParentClass1 { get; set; }
}