Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 需要能够重写类的特定实例的元数据_Asp.net Mvc_Overriding_Metadata - Fatal编程技术网

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
}