2008-09-30 8 views
2

나는 보내는 전자 메일의 내용이 .resx 파일에 저장되는 응용 프로그램이 있습니다.
이의 된 .resx 파일/App_GlobalResources 프로그래밍 방식으로 .resx 파일 읽기

내가 이메일을 보낼 필요가

에서 ASP.Net 응용 프로그램을 살고, 내가 사용이 읽고 있어요 :

HttpContext.GetGlobalResourceObject("MailContents", "EmailID").ToString 

을 지금, 나는 필요 다른 프로젝트 (웹 사이트가 아닌)에서 동일한 메일 링 방법을 사용하는 것. 메일 링 방법은 솔루션 공유의 모든 프로젝트가 공유하는 DLL에 있습니다.

이 다른 프로젝트에서는 분명히 HttpContext가 없습니다.

어떻게 이러한 자료를 읽을 수 있습니까?

현재 Mailing 클래스 내에서 HttpContext.Current가 null인지 확인하고, 그렇다면 별도의 메서드를 사용하십시오.
지금 당장보고있는 별도의 방법 (더 좋은 점이 없다는 사실에 자신을 사퇴 한 후)은 app.config 파일에 저장된 웹 사이트의 .resx 파일 경로를 사용하고 어떻게 든 그 파일을 읽습니다. .
System.Resources.ResourceReader로 시도하기 시작했으나 .resx 파일이 아닌 .resources 파일이 필요합니다.

답변

3

내 질문에 대답했다고 생각합니다 ...
ResXResourceReader 클래스가 있습니다. 내 현재 DLL 참조에 포함되어 있지 않은 Windows Forms 네임 스페이스에 있기 때문에 찾을 수 없습니다.

불행하게도, 이것은 단지 나 결과를 반복하게됩니다, 그래서 난 (읽기 : 메모이 제이션) 일부 귀여운 캐싱을 구현할 수 있습니다 메일 링 방법은 DLL에

-1

리소스 배치가 올바르지 않습니다.

리소스가 웹 사이트에 속하고 매개 변수별로 메일 링 방법으로 보내야합니다.

또는 자원이 메일 링 API dll에 속하므로 여기에 보관해야합니다 (.dll 프로젝트에도 .resx 파일이있을 수 있음). 그런 다음 메일 링 방법은 리소스를 찾는 데 문제가 없어야합니다. 특히 dll 자체에 리소스를 포함하는 경우에는 더욱 그렇습니다.

+0

DLL에 전자 메일을 추가 할 때 발생하는 문제는 전자 메일 내용을 변경하기 위해 DLL을 다시 컴파일해야한다는 것입니다. –

0

... 위에 그 모든 솔루션 공유 프로젝트.

다른 프로젝트에서는 분명히 에 HttpContext가 없습니다.

예. HttpContext는 클래스 라이브러리가 System.Web을 참조하는 한 웹 사이트에서 호출 된 dll에서 사용할 수 있습니다.

관련 문제