2011-10-27 151 views
1

我正在使用業務對象的API,我無法訪問代碼。我直接在我的剃鬚刀視圖中使用這些對象,並希望能夠在實例化對象後應用自定義的displayName屬性。以編程方式將自定義屬性應用於屬性

所以,與其這樣:

[DisplayName("First Name")] 
public string GivenName; 

我想這樣做:

Profile.GivenName.DisplayName("FirstName"); 

我瞭解如何創建自定義屬性,但我具有使它們編程的煩惱。

一旦我可以做到這一點,我可以申請更多的我的DataAnnotations。

回答

2

爲什麼不從業務對象派生類並使用MetaDataType Attribute

[MetadataType(typeof(IMyAttributes)) 
public DerivedClass : BusinessClass 
{ 
} 

public interface IMyAttributes 
{ 
    [Required] 
    public string Name { get; set; } 
} 
+0

這是一個好主意。我試圖避免創建一個額外的層,但接口的想法是好的。然後我可以將自定義屬性應用於界面? – Arnej65

+0

是的,您可以應用接口和接口屬性上的屬性。 –

+1

如果類型沒有密封,這絕對是一種方法。 –