1

런타임 설정을 외부 XML 파일에 저장해야하는 C# dll 프로젝트가 있는데이 DLL은 ASP.NET/ASP.NET에서 사용됩니다 런타임 설정을 외부 파일에 저장해야하는 MVC 응용 프로그램입니다.런타임 설정을 가져 오는 데 IoC 컨테이너를 사용하는 가장 좋은 방법

IoC 컨테이너는 특정 외부 파일 (또는 app.config/web.config)에서로드 된 런타임 설정으로 개체를 만드는 데 사용할 수 있으며 중간 신뢰로 실행되는 웹 응용 프로그램에도 사용할 수 있습니까? 하우투/튜토리얼은 크게 감사 할 것입니다.

지금까지 내가 찾은 경우에만이 기사 :

업데이트 내가 변수 번호를 내 DLL에서 메일을 보내고있다

현재 SMTP 서버 유형을 기준으로 A 유형의 경우 주어진 SMTP 서버 + 포트를 사용하고 있습니다. B 유형의 경우 서버 + 포트 값의 대체 세트를 사용하고 있습니다. 물론 배치 후 값을 수정할 수 있기를 원하므로 XML 파일에 저장합니다.

SMTP 설정을 2 개의 속성 (SMTPServer를 String으로, SMTPPort를 Int32로)이있는 SMTPConfiguration 클래스로 저장하는 경우 IoC 컨테이너에서 지정된 레코드 유형을 기반으로 필요한 개체를 반환 할 수 있습니까? 반환하는 객체를 만들기 위해 런타임 설정을 읽는 가장 좋은 방법은 무엇입니까?

갱신 2

의 내가 구성 파일에 저장하고있어 가정 해 봅시다 다음 매개 변수 : ASMTPServer, BSMTPServer, ASMTPPort, BSMTPPort. Castle DictionaryAdapter를 사용하여 모든 설정을 AppConfiguration 클래스의 속성으로 읽을 수 있습니다.

유형 A 레코드를 매개 변수로 사용하는 경우 필수 SMTPConfiguration 클래스가 ASMTPServer 및 ASMTPPort 값을 사용해야한다고 지정하는 권장 방법은 무엇입니까 (유형 B를 사용하는 경우 BSMTPServer 및 BSMTPPort 값을 사용해야합니다. 매개 변수로 기록)? 또한이 프로세스에서 AppConfiguration이 필요한지 어떻게 지정할 수 있습니까?

+0

... 그냥 새로운 WindsorContainer (새 XmlInterpreter를 ("경로 파일을")) 쓰기 윈저 외부 파일을로드 할 수 있습니다; 또는 이와 비슷한 것입니다. 나는 클래스 네임을 틀리게 만들려고 메모리에서 이것을 썼다. 그러나 당신은 그 아이디어를 얻는다. 그게 네가 찾고있는거야? –

+0

@Krzysztof Koźmic : 정말, 내 응용 프로그램 설정을 클래스 (SMTP, 이름, 포트, 메일 주소 등의 속성 포함)로 유지하고 있습니다. 그리고 두 응용 프로그램 모두에 동일한 IoC 컨테이너를 사용하고 싶습니다. DI를 사용하고 외부 설정 파일에서 내 설정을로드 할 수 있습니다. – alexandrul

+0

잘 이해하고 있는지 잘 모르겠습니다 - 기존 객체의 구성을로드하려면 AbstractStreamResource에서 상속 한 사용자 정의 IResource를 작성하고 객체를 메모리로 직렬화 해제 한 다음 스트림으로 읽기 위해 노출하십시오. 개체의 구성 파일이 모양 파일과 다른 경우 사용자 지정 IConfigurationStore를 작성할 수 있습니다. –

답변

관련 문제