[C#] 동적 DLL Resource (Assembly) 이용하기

#1. 일단 DLL 파일을 만든다. 이 것은 아래 포스팅한 reseditor 이용하는 식으로 해서 하면 되는데,
[파일] -> [New Project] -> [C#] -> [Class Library] 로 만든다음 Resource를 등록하고 컴파일 한다.
사용자 삽입 이미지

예제로 사용해볼 리소스는 "String111"

#2. 리소스 파일을  [Project] -> [Add Existing...] 하고 방금 컴파일한 DLL파일을 찾는다. 그러면 자동적으로
dll파일은 현재 프로젝트와 같은 폴더로 카피된다.
사용자 삽입 이미지

중요한 것은 dll property에서 [Copy to Output Director....] 를 Copy always나 하여간 Copy로 해야
debug 시 실행파일과 함께하게 된다는 것.
(다른방법이 있는지는 못찾겠다. 실행파일에 합쳐버릴수는 없는건지...)

#3.
사용자 삽입 이미지
 
다음에 다음과 같이 Reflection을 사용하여 dll을 불러오고
(불러오는 이름명 함수에 따라 파일명 혹은 네임스페이스 인듯하다)

혹은
 

식으로 함수를 작성하다. ResourceManager에 properties라는 단어가 추가된 것은 첫번째 그림을 보면
resources.resx가 properties라는 폴더 아래에 있기 때문인 듯 하다.

사용자 삽입 이미지


LoadFile이라는 함수는 절대경로를 변수로 취한다.
2009/04/25 14:33 2009/04/25 14:33
JUNN
Programming 2009/04/25 14:33

트랙백 주소 : http://www.junn.net/tt/trackback/307

  1. C# 어셈블리에 대해서 정리해 보았습니다. tracked from 재밌게 즐기는 프로그래밍 2009/08/21 20:31  삭제

    필요하시면 보시고, 댓글은 필수! 20090821_C# 어셈블리 정리_김용연.hwp

댓글을 달아 주세요

  1. 샤브 2010/02/03 09:51  수정/삭제  댓글쓰기

    잘봤습니다.
    근데 ResourceManager 이건 using 선언을 어떤것을 해야하나요?

    • JUNN 2010/02/03 20:26  수정/삭제

      안녕하세요~ 요샌 C#을 안써서 소스를 확인할 수 가 없네요. 다만 제가 적어놓은 소스를 보시면 myRes = System.Reflection.Assembly.LoadFrom("ClassLibrary1.dll"); 처럼 애초에 using을 안하는 방법으로 직접 namespace를 사용하기 때문에 따로 선언문이 필요하지 않을 것 같습니다만 정확히는 기억이 잘 안납니다-_-죄송합니다^^;;

    • 김현철 2010/05/27 10:34  수정/삭제

      using System.Resources;
      을 사용하세요

[로그인][오픈아이디란?]

Powerd by Textcube,designed by criuce, Revised by JUNN