Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wpf和验证应用程序块>消息本地化>消息模板资源名称和类型_Wpf_Validation_Localization_Resources_Enterprise Library - Fatal编程技术网

wpf和验证应用程序块>消息本地化>消息模板资源名称和类型

wpf和验证应用程序块>消息本地化>消息模板资源名称和类型,wpf,validation,localization,resources,enterprise-library,Wpf,Validation,Localization,Resources,Enterprise Library,我正在尝试为WPF应用程序中的数据对象编写验证规则。我正在配置文件中编写它们,到目前为止,它们工作正常 如何使用messageTemplateResourceName和messageTemplateResourceType对消息进行本地化,我被难住了。我所知道的是,字符串可以写在资源文件中,给定名称并由该名称引用。我明白了,但我一直没能做到 <ruleset name="Rule Set"> <properties> <property na

我正在尝试为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项目的资源文件中写入消息,但是尝试检索值没有成功。我只得到默认的内置消息

我试过了

messageTemplateResourceType=typeofResources messageTemplateResourceType=资源 messageTemplateResourceType=Resources.resx messageTemplateResourceType=typeofShell messageTemplateResourceType=Shell messageTemplateResourceType=Shell, 版本=1.0.0.0,区域性=中性, PublicKeyToken=null 我还尝试在shell项目中添加新的资源文件,并将资源文件添加到数据对象的库中。我没有主意了有人有什么建议吗?我甚至不赞成使用资源文件,所以如果有其他方法来本地化这些消息,我很想知道


谢谢

您需要创建自己的资源文件,然后将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键从资源文件或数据库或任何存储它的地方查找实际本地化字符串。

谢谢,我的程序集名称似乎不是我想象的那样。