0

저는 WCF RIA Services 베타 버전으로 Silverlight 프로젝트를 진행하고 있습니다. 유효성 검사 속성을 추가하여 필드의 유효성을 검사하기 위해 BlahDomainService.metadata.cs 파일을 사용하고 있습니다. [정규 표현식]. 그것은 리소스 파일에 오류 메시지를 넣으려고 노력하고있어 그래서 지금은 작동하지 않습니다. RegEx 유효성 검사는 서버에서 실행 중이지만 클라이언트에서 실행되지 않습니다.내 Silverlight RIA 프로젝트에서 공유 리소스 파일이 작동하지 않는 이유는 무엇입니까?

어떤 원인 일 수 있습니까? 클라이언트에서 생성 된 코드 파일에서

, 나는이 오류가 표시 : 나는 내가 SharedResources.resx을 생성 (및 대가 SharedResources을 만들어

어딘지 가지고 어떻게

// 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))]

.Designer.cs) 파일을 .Web 프로젝트의 Resources 폴더에 저장합니다. Silverlight 프로젝트에서 웹 폴더를 만들고 그 폴더에 Resources 폴더를 만들었습니다. 이 Resources 폴더에 Add> Existing Item을 한 다음 Add as Link 옵션을 사용하여 SharedResources.resx와 .Designer.cs를 추가했습니다. 아이디어는 이것이 두 개의 리소스 클래스에 대해 네임 스페이스를 동일하게 유지할 것이라는 것이 었습니다. 그런 다음 .csproj 파일을 편집하여 Silverlight 비즈니스 응용 프로그램 템플릿을 참조로 사용하여 .Designer.cs 파일의 .resx 파일 종속성을 확인했습니다.

솔루션을 빌드하고 테스트 한 결과 RegEx 유효성 검사에서 오류가 발생하지 않습니다. 그런 다음 위의 메시지를 발견했습니다. 내 연결이 Home.xaml.cs에서, 작동되었는지 확인하려면, 내가 입력 :

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

및 VS.에서 출력 창에 오류를 보았다 또한 서비스 변경 사항과 EntitiesInError, VaidationErrors에 오류 메시지가 표시되어 서버 측에서 작동하는 것으로 알고 있습니다. 그것은 단지 클라이언트 측이 아닌 것입니다. 왜 그것이 작동하지 않는지 아는가?

답변

0

.resx에 대한 AccessModifier를 공개로 설정하지 않았다는 것을 제외하면 모든 것이 괜찮 았습니다. 일단 내가 그것을하고 Rebuilt All을 했더라면 효과가있었습니다.

+0

나는 또한 동일한 문제에 직면 해있다. –

+0

Visual Studio에서 .resx 파일 이름을 마우스 오른쪽 단추로 클릭하십시오. 열기를 선택하십시오. 상단에서 문자열 - 리소스 추가 - 리소스 제거 - [도구 아이콘] - 액세스 수정 자 - 드롭 다운에서 공개를 선택합니다. – serialhobbyist

1

또한 웹 프로젝트의 클라이언트 Silverlight 프로젝트에 리소스 (.resx)를 링크로 추가했습니다. VS 2010의 Silverlight Bussiness 응용 프로그램을 참조하십시오. 아주 좋은 예제가 있습니다.