多个属性合二为一?

时间:2012-07-27 18:32:58

标签: c# asp.net-mvc inheritance attributes

我有这些属性(A,B):

[DataType(DataType.MultilineText)]
[Required(ErrorMessage = "A is required"), DisplayName("A")]
[StringLength(Constants.MaximunStringSize)]
public string A { get; set; }

[DataType(DataType.MultilineText)]
[Required(ErrorMessage = "B is required"), DisplayName("B")]
[StringLength(Constants.MaximunStringSize)]
public string B { get; set; }

我可以通过其构造函数创建一个“继承”所有属性(DataType,Required,StringLength,DisplayName)和集合的类。例如:

[MyAttribute("A","A is required")]
public string A { get; set; }

[MyAttribute("B","B is required")]
public string B { get; set; }

2 个答案:

答案 0 :(得分:3)

一般来说,没有。

但是,对于验证属性,您可以创建自己的验证属性,其中包含现有属性中的所有逻辑。

要模仿[DataType],您需要实施IMetadataAware

答案 1 :(得分:2)

C#中没有多重继承,所以不,你不能这样做。

但是,您可以编写自己的属性,其中包含这些属性的所有功能。