2009-11-04 1 views
11

내가 NET의 .resources가 아닌 다른 파일 형식으로 내 자원을 저장할 확장, 그래서 나는 그들을 검색하는 사용자 정의 자원 리더 설정 사용자 정의 자원을 썼다. CreateFileBasedResourceManager 정적 메서드를 사용하여 ResourceManager를 만들었습니다. 정적 메서드는 Name.culture.resources를 사용하여 지정된 리소스 집합 (내 경우에 작성한 사용자 지정 집합)을 사용하여 특정 dir의 파일에서 리소스 집합을 검색하는 관리자 인스턴스를 새로 만듭니다. 파일 이름.는 (특히,와 .po에서) C#을 파일 기반 리소스 관리자

그러나, 나는 파일 이름 규칙을 변경하고 싶습니다. 그 목적을 위해 Overridable GetResourceFileName 메서드가 있음을 알게되었습니다. 하지만 반사경을 사용하여 나는 CreateFileBasedResourceManager에 의해 사용 된 생성자가 private임을 알아 냈고, 그렇지 않으면 "어셈블리 대신 파일 사용"플래그를 설정할 수 없습니다.

전체 InternalGetResourceSet 방법을 구현할 필요없이이 문제를 갈 수있는 방법이 있습니까?

고맙습니다.

+1

가 혹시이 분류나요? 당신은 응용 프로그램 내에서 반사를 사용하여 "개인 플래그"문제를 극복 할 수 있습니다. – jcolebrand

+1

리플렉터를 사용하여 리소스 관리자의 구현을 복사하고 필요한 부분을 수정하기 만했습니다. 매우 우아하지는 않지만 효과가있었습니다. –

답변

1

모노이에 도움이 좋은 작은 유틸리티를 가지고와 .po 파일 디렉토리에서 파일을 .resources 만드는 데 사용할 수 있습니다 그라고 msgfmt에서.

Msgfmt.exe -iMessages.es.po -oMessages.es.resources 

내가 나에게 도움이 http://weblogs.manas.com.ar/spalladino/2009/10/01/using-gnu-gettext-for-i18n-in-c-and-asp-net/ @ 흥미로운 기사를 통해 온과 잘 당신도 도움이 될 수 있습니다 ..

그것의 다른 접근하지만 나를 위해 일한!

+2

기사에 대한 링크를 가져 주셔서 감사합니다 ...하지만 저자는 실제로 내 자신입니다 : P –

+0

멋진 기사 ... 기억할만한 분은 ... 링크를 게시하기 전에 기사의 저자를 확인하십시오! –