Asp.net mvc 需要能够重写类的特定实例的元数据
我正在寻找任何可能的解决方案来覆盖现有类的元数据类型 例如:Asp.net mvc 需要能够重写类的特定实例的元数据,asp.net-mvc,overriding,metadata,Asp.net Mvc,Overriding,Metadata,我正在寻找任何可能的解决方案来覆盖现有类的元数据类型 例如: public class PersonMetadata { [Required] public string Id { get; set; } [DisplayName("First Name")] public string Name { get; set; } [DisplayFormat(DataFormatString = "{0:yyyy-mm-dd}")] public DateTime
public class PersonMetadata
{
[Required]
public string Id { get; set; }
[DisplayName("First Name")]
public string Name { get; set; }
[DisplayFormat(DataFormatString = "{0:yyyy-mm-dd}")]
public DateTime Birthday { get; set; }
}
public class OtherPersonMetadata : PersonMetadata
{
[DisplayName("Full Name")]
public new string Name { get; set; }
[DisplayFormat(DataFormatString = "{0:dd-mm-yyyy}")]
public new DateTime Birthday { get; set; }
}
[MetadataType(typeof(PersonMetadata))]
public class Person
{
public string Name { get; set; }
}
public class EmployeeRecord
{
public Person PersonA { get; set; }
[ApplyMetaData(typeof(OtherPersonMetadata))] <----- Possible & How?
public Person PersonB { get; set; }
}
在这种情况下,我是否有可能覆盖PersonB的元数据?我不确定您在这里要求什么。是否尝试将属性应用于对象实例而不是属性?属性应用于代码,而不是实例。是否尝试进行混合?你想在
Person
实例中添加Id
、Name
和Birthday
作为属性,但仅限于PersonB
?嗯……我需要找到一种方法,使用不同的属性(它们是同一类)来使用不同的元数据。@jeef3是的,基本上我希望PersonB使用另一种元数据
[MetadataType(typeof(PersonMetadata))]
Person{
...
}
Class EmplyeeRecord{
Person PersonA -> PersonMetaData
Person PersonB -> OtherMetaData
}