我正在使用WCF RIA Services測試版來開發Silverlight項目。我正在使用BlahDomainService.metadata.cs文件通過添加驗證屬性來驗證字段,例如[正則表達式]。它正在工作,所以我試圖將錯誤消息放在資源文件中,現在它不起作用。 RegEx驗證不在客戶端上運行,儘管它正在服務器上運行。爲什麼我的共享資源文件不能在我的Silverlight RIA項目中工作?
任何想法可能會造成這種情況?
在客戶端上生成的代碼文件,我看到這個錯誤:
// 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))]
我是如何得到我的
我創建了SharedResources.resx(和Vs的創建SharedResources .Designer.cs)文件放在名爲Resources的文件夾中.Web項目中。在Silverlight項目中,我創建了一個Web文件夾,並在其中創建了一個Resources文件夾。在此Resources文件夾中,我執行了Add> Existing Item,然後使用Add as Link選項添加SharedResources.resx和.Designer.cs。這個想法是,這將保持兩個資源類的命名空間相同。然後,我使用Silverlight Business Application模板作爲參考編輯.csproj文件,使.Designer.cs文件成爲.resx文件的依賴項。
我構建瞭解決方案並對其進行了測試,RegEx驗證未拋出錯誤,這很糟糕。然後我發現上面的消息。爲了驗證我的鏈接是工作,在Home.xaml.cs,我輸入:
System.Diagnostics.Debug.WriteLine(Web.Resources.SharedResources.RegExError);
,並在VS. Output窗口看到錯誤我也向服務提交了更改,並且在EntityInError中,在VaidationErrors上,我可以看到錯誤消息,所以我知道它在服務器端工作。只是客戶端不是。任何想法爲什麼它不工作?
我也面臨同樣的問題你能詳細解釋一下plz的解決方案嗎? 謝謝 – 2010-08-30 13:19:34
右鍵單擊Visual Studio中的.resx文件名。選擇打開。在頂部你會看到字符串 - 添加資源 - 刪除資源 - [工具圖標] - 訪問修改器 - 在下拉列表中選擇公共。 – serialhobbyist 2010-08-31 13:27:06