我有一个自动生成的类,上面有一个属性。我想在另一个相同类型的部分类中向该属性添加一些数据注释。我该怎么做?
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属性已存在。
答案 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; }
}