私は次の解決策を持っています:
- SomeProject.Ria (非 Silverlight コード)
- SomeProject.Ria.Silverlight (Silverlight ライト コード、名前空間は SomeProject.Ria のまま)
- SomeProject.Ria.MyServices (RIA サービス ドメイン サービス)
- SomeProject.Ria.MyServices.Proxies (RIA サービスの Silverlight 生成コード)
- SomeProject.Shell (Silverlight アプリケーション)
- SomeProject.Web (Web アプリケーション)
SomeProject.Ria.MyServices のメタ データ クラスのアノテーションにリソース ファイルを使用したいと考えています。
その形式は次のようになります。
[Required(AllowEmptyStrings=false,ErrorMessageResourceName="ThisFieldIsRequired", ErrorMessageResourceType(MyResource))]
MyResource はどのプロジェクトに属していますか? (いつか他のカルチャファイルをサポートする必要があると仮定します)。
また、ここでの文字列の使用は実際にエラーの余地を生み出しているようです。このようなことを行ってローカライズを達成することは可能ですか、それともメタデータにコンパイルされるだけですか? そうでない場合、リソース名が文字列であることをどのように回避できますか?
[Required(AllowEmptyStrings=false,ErrorMessage=MyResources.RequiredMessage)]