复杂对象的元数据类型
本文关键字:数据类型 对象 复杂 | 更新日期: 2023-09-27 18:05:48
我有一些复杂的对象。让我们假设我的对象如下:
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,另一个不需要。这很容易通过向MetadataType类添加[Required]属性来处理:
[MetadataType(typeof(driverMetadata))]
public class driverModel : contactModel
{
}
public class driverMetadata
{
[Required]
public addressModel address {get;set;}
}
但是如果我需要第三个类,只需要addressModel的street和number属性,该怎么办?我需要创建一个继承addressModel的新类并将元数据类型分配给这个新类吗?
我完全理解我可以创建一个只有这两个属性的新地址模型类,但现在想象一个有几十个属性的类。我们不想创建专门的类来混合和匹配我们需要的不同属性。
我最终放弃了这一点,并继续使用特殊类。这大大降低了可重用性(从而降低了生产率),但正如我们在智利所说:"最优是好的敌人"。