如何在EntLib属性中使用资源文件作为消息文本?

时间:2010-12-07 06:10:39

标签: resources localization enterprise-library

我正在使用EntLib的验证属性验证我的业务对象属性。我想使用资源文件本地化MessageTemplate文本,但是当我执行MessageTemplate = Resource.MyMessage之类的操作时,我得到以下编译时消息:

“属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式”

有没有办法为此文本使用资源文件?

谢谢, 杰

1 个答案:

答案 0 :(得分:1)

您需要使用MessageTemplateResourceNameMessageTemplateResourceType属性,而不是MessageTemplate属性。

您的代码看起来像这样:

[StringLengthValidator(1, 50, 
   MessageTemplateResourceName="InvalidLength", 
   MessageTemplateResourceType=typeof(MyResource))]
public string FirstName
{
    get;
    set;
}

请注意,您不能在属性中使用强类型资源类(例如,MyResource.InvalidLength),因为该属性需要一个常量,并且自动生成的类包含一个属性。 (这就是您的错误消息的原因。)

有关详细信息,请参阅Using the Message Template Resources