Silverlight, RIA Services, Data Annotation与本地化资源文件共享

在RIA Services中使用Data Annotations可以非常方便的实现数据验证,并且Data Annotation可通过资源文件.resx实现本地化。这里最大的挑战是如何在Silverlight端与WCF端共享资源文件。

 

如何实现资源文件的共享?

 

服务端项目文件设置(VB.NET项目)如下:

 

Silverlight, RIA Services, Data Annotation与本地化资源文件共享_第1张图片
图1-1: 服务端资源文件 - ValidationStrings.Designer.vb中的构造函数修改为Public (此为VS的bug,每次改动resx文件,需手动修改)

 

Silverlight, RIA Services, Data Annotation与本地化资源文件共享_第2张图片
图1-2 VB.NET默认 Namespace为"My.Resources",这里去掉

 

Silverlight, RIA Services, Data Annotation与本地化资源文件共享_第3张图片
图1-3 Domain Service的metadata文件中可使用Data Annotation 的本地化参数

 

Silverlight端项目文件设置如下:

 


图2-1 "链接添加"现有的服务端项目资源文件

 

Silverlight, RIA Services, Data Annotation与本地化资源文件共享_第4张图片
图2-2 编辑Silverlight项目文件,添加图中高亮内容

 

Silverlight, RIA Services, Data Annotation与本地化资源文件共享_第5张图片

 

图2-3 继续添加图中高亮内容,LogicalName中使用服务端项目的根命名空间名称

 


图2-4 编译Silverlight项目,可查看自动生成的代码中已经在Silverlight端使用了Data Annotation及本地化参数

 

 

通过以上设置,就实现了Data Annotation本地化资源文件在Silverlight端与服务端的共享。效果如下:

 

 

参考1:http://forums.silverlight.net/forums/p/184013/420509.aspx

参考2:http://msdn.microsoft.com/en-us/library/ms164295(v=vs.90).aspx

资源1:使用反编译器查看assembly中的资源文件命名,可有助于发现问题。Reflector不再免费,可用JustDecompile

 

你可能感兴趣的:(assembly,silverlight,VB.NET,WCF,RIA,Annotations)