2010-07-06 3 views
1

.NET 응용 프로그램에서 호출하고 COM에서 호출하고 예를 들어 Excel에서 호출하는 클래스 라이브러리가 있습니다..NET 클래스 라이브러리의 구성 파일 위치를 무시 하시겠습니까?

이 클래스 라이브러리는 구성 파일에서 일부 값을 가져와야합니다. .NET 애플리케이션에서 참조 할 때 app.config에 필요한 요소를 넣을 수 있습니다. 하지만 Excel에서 전화를 걸 때 나는 이것을 할 수 없습니다.

Excel에서 전화를 걸 때 구성 파일의 위치를 ​​재정의 할 수있는 방법이 있습니까?

답변

1

정확하게는 아닙니다. 할 수있는 일은 ConfigurationManager.OpenExeConfiguration을 사용하여 특정 구성 파일을 열고 거기에서 구성 설정을 읽는 것입니다.

그러나 이것은 클래스 라이브러리가 응용 프로그램 구성을 직접 참조하는 좋은 이유가 아닌 좋은 예입니다. 라이브러리는 응용 프로그램간에 재사용되도록 설계되었으며 다른 응용 프로그램은 구성 옵션을 지정하는 다른 방법을 가질 수 있습니다. 이는 Excel 이상에 적용됩니다.

대신, 비헤이비어를 제어하는 ​​데 필요한 옵션을 속성으로 설정하거나 메소드 인수로 전달할 수 있도록 라이브러리를 디자인해야합니다. 둘 중 더 적합한 옵션과 API 스타일에 적합합니다.

+0

좋은 점, 일반적으로 나는 그들과 완전히 동의합니다. 클래스 라이브러리는 실제로 웹 서비스를 둘러싼 단순한 래퍼이지만이 경우입니다. 우리가 목표로하는 것은이 dll로 사람들이 엑셀에서 그것에 대한 참조를 추가 할 때 웹 서비스 URL이나 사용자 이름 \ 암호를 설정하는 것에 대해 걱정할 필요가 없다는 것입니다. 이것은 암호화 된 어딘가의 .config 파일에 모두 포함됩니다. – mutex

0

응용 프로그램 설정을 사용하고 저장 /로드 할 위치를 제어하려는 경우 this answer에이 작업을 수행하는 방법에 대한 정보가 있습니다.

관련 문제