2011-07-28 12 views
3

웹 프로젝트에서 응용 프로그램을 지역화하기 위해 리소스 파일을 만들었습니다. 따라서 웹 응용 프로그램에는 레이블 및 버튼 등의 번역 된 텍스트가 모두 포함됩니다. 그러나 나는 또한 생성하고 내 사용자에게 전자 메일을 보내는 데 사용하는 일부 백 엔드 코드가 있으며 그 전자 메일도 지역화되기를 바랍니다. 전자 메일을 보내는 코드는 웹 프로젝트와 별도의 어셈블리에 있으므로이 리소스 파일을 어셈블리와 공유하는 가장 좋은 방법은 무엇입니까?별도의 어셈블리에서 리소스 파일에 액세스

HttpContext.GetGlobalResourceObject("Localization", "somekey").ToString(); 

그래서 나는 단순히 어셈블리 코드에서이 작업을 수행 할 수 있습니다 : 내 웹 프로젝트의 코드에서

난 그냥이 일을하고있어

System.Web.HttpContext.GetGlobalResourceObject("Localization", "somekey").ToString(); 

하고는 같이 잘 한 작동합니다 어셈블리는 내 웹 응용 프로그램에서 호출됩니다 ...하지만 어떤 이유로 든 웹 기반이 아닌 다른 응용 프로그램에서 해당 어셈블리의 메서드를 호출하려면 HttpContext가 없으므로 실패합니다. 이 두 가지 방법으로 리소스를 공유 할 수 있도록이 작업을 수행하는 더 좋은 방법이 있습니까?

덕분에 많은

답변

1

당신은 다른 어셈블리에서 문자열에 액세스 할 ExpressionBuilder을 구축 할 수 있습니다.

<asp:Label ID="AppTextLabel" runat="server" 
    Text="<%$ Strings:MyCompany.MyApp.MyStrings, AppText %>" /> 
<asp:Label ID="LibTextLabel" runat="server" 
    Text="<%$ Strings:MyCompany.MyLib.MyStrings, LibText %>" /> 
:

기사 .NET String Resources는 표현식 문자열을 가지는 클래스 StringExpressionBuilder을 포함

관련 문제