Azure/RIA/Silverlight应用中本地化数据注释的问题

本文关键字:数据 注释 问题 本地化 RIA Silverlight 应用 Azure | 更新日期: 2023-09-27 18:04:23

我很难在Azure/RIA/Silverlight应用程序中创建本地化的数据注释。

这是我目前所拥有的和我所做的:

  • 我有一个基本项目,其中包含数据模型以及我们在整个解决方案中使用的一些全局常量。命名空间为GOLTracker.Base
  • 在这里,我已经放置了我的.resx并为其中一个类定义了一些基本显示信息。

下面是一段代码,它定义了其中一个类并使用了资源文件:

 public partial class Vehicle : TableEntity
 {
    [Required]
    [Bindable(true, BindingDirection.TwoWay)]
    [Display(Name = "VehicleNameLabel", Description = "VehicleNameDescription", ResourceType = typeof(DisplayResources))]
    public string Name { get; set; }
    (...)
 }
  • 第二个是我的GOLTracker.Role项目,它是Azure中的主要角色。它包含了承载Silverlight应用程序的网页。这里没有资源。它还包含BoardDomainService类,用于获取数据的查询。
  • 最后,在GOLTracker.Board.中有两个Silverlight应用程序:GuiMapControlGui。两者都使用了数据模型。在这两个应用程序中,我都添加了指向资源文件(.resx.cs)的链接。

同时,我编辑了Silverlight项目文件以包含本地化信息:

<SupportedCultures>
  en-US;pl-PL
</SupportedCultures>

一切都正确编译。然而,当我试图打开任何使用Vehicle类的Silverlight应用程序的页面时,我得到以下异常:

Message: System.ServiceModel.DomainServices.Client.DomainException: An error occurred
while loading data through the 'GetVehicles' query on DomainContext of type
'BoardDomainContext' and the error was not handled.  If this error is expected, then
you must handle the LoadedData event on the DomainDataSource and call
LoadedDataEventArgs.MarkErrorAsHandled() to avoid this exception.
Exception has been thrown by the target of an invocation. --->
System.Reflection.TargetInvocationException: Exception has been thrown by the target
of an invocation. ---> System.Resources.MissingManifestResourceException: Could not
find any resources appropriate for the specified culture or the neutral culture.  Make
sure "ARP.GOLTracker.Base.Resources.DisplayResources.resources" was correctly embedded
or linked into assembly "ARP.GOLTracker.Board.MapControlGui" at compile time, or that
all the satellite assemblies required are loadable and fully signed.
老实说,我不知道原因是什么;链接的.resx文件是嵌入资源,因为它们应该是。我不知道还缺什么。

请帮。

Azure/RIA/Silverlight应用中本地化数据注释的问题

我找到了解决问题的办法。我不能说我喜欢它,因为它表明在生成代码时发生了一些丑陋的事情。

在这里找到的解决方案围绕将<LogicalName>添加到SL项目文件中链接的.resx.的定义。