我正在尝试在 WPF应用程序中为我的数据对象编写验证规则。我在配置文件中写它们,到目前为止它们工作正常。
我对如何使用messageTemplateResourceName和messageTemplateResourceType本地化消息感到困惑。我所知道的是,字符串可以在资源文件中写入,给定名称并由该名称引用。我明白了,但我无法做到这一点。
<ruleset name="Rule Set">
<properties>
<property name="StringValue">
<validator lowerBound="0" lowerBoundType="Ignore" upperBound="25"
upperBoundType="Inclusive" negated="false" messageTemplate=""
messageTemplateResourceName="msg1" messageTemplateResourceType="Resources"
tag=""
type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.StringLengthValidator, Microsoft.Practices.EnterpriseLibrary.Validation"
name="String Length Validator" />
</property>
</properties>
</ruleset>
资源文件在哪里,我传递给messageTemplateResourceType的值是什么? 我已经尝试在shell项目的资源文件中编写消息,但没有尝试检索值。我只获得默认的内置消息。
我试过
我还尝试在shell项目中添加新资源文件,并将资源文件添加到数据对象的库中。我完全没有想法有没有人有任何建议?我甚至没有与资源文件的想法结合,所以如果有其他方法来本地化这些消息,我很想知道!
感谢
答案 0 :(得分:0)
您需要创建自己的资源文件,然后将messageTemplateResourceType属性指向您的完全限定资源类型。只要资源文件可以在运行时加载,你应该没问题。
<ruleset name="Rule Set">
...
messageTemplateResourceName="msg1"
messageTemplateResourceType="My.Fully.Qualified.ResourceType, My.AssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
...
</ruleset>
另一种方法是使用messageTemplate作为键并编写自定义代码,以根据messageTemplate键(来自资源文件或数据库或存储它的任何其他位置)查找实际的本地化字符串)。