2012-07-27 57 views
2

我有這些特性(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; } 

我可以創建一個類「繼承」的所有屬性(數據類型,所需,StringLength,顯示名稱),並設定通過它的構造函數?例如:

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

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

您只能從_one_父項繼承。 C#不支持多重繼承。 – Oded 2012-07-27 18:34:55

+0

非常感謝Oded,所以我在這個詞的遺產周圍加了引號。對不起我的英語不好。 – 2012-07-27 18:48:14

回答

3

一般來說,沒有。

但是,對於驗證屬性,您可以創建自己的驗證屬性,其中包含現有屬性中的所有邏輯。

要效仿[DataType],您需要實施IMetadataAware

2

在C#中沒有多重繼承,所以不,你不能這樣做。

然而,您可以編寫自己的屬性,該屬性包含這些屬性的所有功能。