문제

다음과 같은 비표준 설정이 있습니다(VS2008, .NET 3.5 SP1).

MainSite라는 기본 웹 프로젝트가 있고 다른 이름을 가진 여러 "플러그인" 웹 프로젝트가 있습니다.

이러한 플러그인을 빌드할 때 다음을 호출하는 사용자 정의 빌드 단계가 있습니다. aspnet_compiler.exe 그리고 aspnet_merge.exe.결과적으로 두 개의 .DLL 파일이 생성됩니다. 플러그인_이름.dll 및 플러그인_이름_deploy.dll.첫 번째에는 코드 숨김 클래스가 포함되어 있고 두 번째에는 .ascx 파일에서 생성된 코드가 포함되어 있습니다.

그런 다음 이러한 플러그인 .DLL이 다음 위치에 복사됩니다. /MainSite/bin/Plugins/ 폴더.런타임(응용 프로그램 시작) 시 MainSite 응용 프로그램은 이 폴더를 찾고 거기에 있는 모든 .DLL 파일을 동적으로 로드합니다.

내 모든 양식은 플러그인의 .ascx 파일에 있습니다.기본 응용 프로그램은 필요에 따라 이러한 .ascx 사용자 컨트롤을 로드하는 뼈대일 뿐입니다.

이제 현지화가 필요해졌습니다.이상적으로는 다음을 갖고 싶습니다.

  • Visual Studio에서 리소스를 만들 때 모든 양식(.ascx 파일)에 대해 별도의 리소스 파일이 있어야 사람들이 양식을 병렬로 지역화하기가 더 쉽습니다.
  • 좋은 meta:resourcekey .ascx 파일의 메서드는 컨트롤을 현지화하는 데 매우 편리합니다.
  • .NET의 자동 리소스 언어/문화권 대체 메커니즘을 사용할 수 있어야 합니다.
  • 컴파일 결과는 모든 플러그인의 파일이 /MainSite/bin/Plugins/ 폴더.모든 언어/문화권에 대한 .DLL 파일이 있고 일부 특정 하위 폴더에 저장해야 하는 경우, 서로 다른 플러그인의 .DLL에 충돌하는 이름이 없으면 괜찮습니다.

이를 달성하는 방법에 대한 아이디어가 있습니까?

도움이 되었습니까?

해결책

분명히 .NET에서 사용자 지정 리소스 공급자를 구현하는 것이 가능합니다. 여기 전체 과정을 설명하는 다양한 다른 기사에 대한 링크가 포함된 기사입니다.실제로는 다음에서 값을 가져옵니다. meta:resourcekey 원하는 곳 어디에서나 가치를 얻을 수 있습니다.예를 들어 위의 기사는 모든 현지화 정보를 DB에 저장합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top