【问题标题】:Why isn't my shared resource file working in my Silverlight RIA project?为什么我的共享资源文件在我的 Silverlight RIA 项目中不起作用?
【发布时间】:2010-01-05 15:21:57
【问题描述】:

我正在使用 WCF RIA 服务测试版进行 Silverlight 项目。我正在使用 BlahDomainService.metadata.cs 文件通过添加验证属性来验证字段,例如[正则表达式]。它正在工作,所以我试图将错误消息放入资源文件中,但现在它不起作用。 RegEx 验证并未在客户端上运行,但它正在服务器上运行。

知道是什么原因造成的吗?

在客户端生成的代码文件中,我看到了这个错误:

// Unable to generate the following attribute due to the following error(s): // // - The validation attribute 'System.ComponentModel.DataAnnotations.RegularExpressionAttribute' declared ErrorMessageResourceName='RegExError' which was not found on declared ErrorMessageResourceType 'Blah.Web.Resources.SharedResources'. // [RegularExpressionAttribute("yawn", ErrorMessageResourceName = "RegExError", ErrorMessageResourceType = typeof(Blah.Web.Resources.SharedResources))]

我是如何到达这里的

我在名为 Resources 的文件夹中的 .Web 项目中创建了 SharedResources.resx(和 Vs 创建了 SharedResources.Designer.cs)文件。在 Silverlight 项目中,我创建了一个 Web 文件夹,并在其中创建了一个 Resources 文件夹。在此 Resources 文件夹中,我执行了 Add > Existing Item,然后使用 Add as Link 选项添加了 SharedResources.resx 和 .Designer.cs。这个想法是,这将使两个资源类的命名空间保持相同。然后,我使用 Silverlight 业务应用程序模板作为参考,编辑了 .csproj 文件以使 .Designer.cs 文件成为 .resx 文件的依赖项。

我构建了解决方案并对其进行了测试,RegEx 验证没有抛出任何错误,这很糟糕。然后我找到了上面的消息。为了验证我的链接是否有效,我在 Home.xaml.cs 中输入:

System.Diagnostics.Debug.WriteLine(Web.Resources.SharedResources.RegExError);

并在 VS 的输出窗口中看到了错误。我还提交了对服务的更改,在 EntitiesInError 中的 VaidationErrors 中,我可以看到错误消息,所以我知道它在服务器端工作。只是客户端不是。知道为什么它不起作用吗?

【问题讨论】:

    标签: silverlight validation silverlight-3.0 metadata wcf-ria-services


    【解决方案1】:

    您还可以在 web 项目的客户端 silverlight 项目中添加资源 (.resx) 作为链接。 请参阅 VS 2010 中的模板 Silverlight Business Application。它有一个非常好的示例。

    【讨论】:

      【解决方案2】:

      一切都很好,只是我没有将 .resx 的 AccessModifier 设置为 Public。一旦我完成并重建所有,它就起作用了。

      【讨论】:

      • 我也面临同样的问题,请您详细解释解决方案。谢谢
      • 右键单击 Visual Studio 中的 .resx 文件名。选择打开。在顶部你会看到字符串 - 添加资源 - 删除资源 - [工具图标] - 访问修饰符 - 在下拉列表中选择公共。
      猜你喜欢
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 2023-03-27
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多