【发布时间】:2015-08-01 16:05:54
【问题描述】:
我有一些复杂的对象。假设我的对象如下:
public class addressModel
{
public string street {get;set;}
public string number {get;set;}
public string state {get;set;}
}
public class contactModel
{
public string firstName {get;set;}
public string lastName {get;set;}
public addressModel address {get;set;}
}
现在我需要从 contactModel 继承的其他类,但其中一个需要 addressModel 而另一个不需要。这很容易通过将 [Required] 属性添加到 MetadataType 类来处理:
[MetadataType(typeof(driverMetadata))]
public class driverModel : contactModel
{
}
public class driverMetadata
{
[Required]
public addressModel address {get;set;}
}
但是,如果我需要只需要 addressModel 的街道和号码属性的第三类怎么办?我是否需要创建一个继承自 addressModel 的新类并将 MetadataType 分配给这个新类?
我完全理解我可以创建一个只有这 2 个属性的新地址模型类,但现在想象一个具有几十个属性的类。我们不想创建混合和匹配我们需要的不同属性的临时类。
【问题讨论】:
标签: c# inheritance model-view-controller metadatatype