2011-10-27 100 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

如果类型没有密封,这绝对是一种方法。 –