Windows Store 및 WP8 응용 프로그램에서 사용할 PCL을 개발 중입니다. 이 라이브러리에는 몇 가지 구성이 필요합니다. 원격 서비스 URL. app.config에 이들을 넣고 ConfigurationManager를 사용하여 검색하려고했지만 System.Configuration은 PCL에서 사용할 수없는 것 같습니다.휴대용 클래스 라이브러리의 구성 값
답변
구성 클래스를 만들었습니다.
public class MyLibraryConfig
{
public string RemoteServiceUrl{get;set;}
}
는이어서 표준 의존성 주입 기술을 통해 라이브러리이 클래스의 인스턴스를 전달 가장 간단한 경우 1 그것은 같을 수있다. 예를 들어 생성자에 전달하고 필드에 저장합니다. 그렇다면 ConfigurationManager
등의 파일에서 구성을 읽는 것은 응용 프로그램의 책임입니다.
IMO 이것은 훨씬 더 좋은 디자인이며 ConfigurationManager
에 액세스 할 수있는 라이브러리에서도 구성 관리자를 쿼리하는 데 사용합니다. 그렇지 않으면 응용 프로그램이 단일 구성을 사용하고 특정 구성 메커니즘을 사용하도록합니다.
1 당신은 또한 인터페이스 또는 불변의 클래스를 사용할 수 있습니다. 약간 더 복잡하지만 IMO 디자인이 더 좋습니다.
라이브러리 클래스의 앱 설정을 사용하는 것이 왜 그렇게 나쁜지 정당화 할 수 있습니까? 이 구성 메커니즘이 이런 식으로 사용되도록 설계되지 않았습니까? – filip
어떤 구성을 사용할지 결정하는 것은 응용 프로그램 책임이며 라이브러리의 책임은 아닙니다. 응용 프로그램의 시작 코드에서'ConfigurationManager'에 접근하는 것은 괜찮지 만 라이브러리에서 액세스하는 것은 아닙니다. 라이브러리에서'ConfigurationManager'에 접근하는 것을 피하는 것은 싱글 톤과 전역 변수를 피하는 특별한 경우입니다. 단일 프로세스 내에서 라이브러리의 인스턴스화 두 개를 원한다면 어떻게할까요? 어떻게 테스트 구성을 제공합니까? 라이브러리 소비자가 다른 구성 메커니즘을 사용하면 어떻게 될까요? – CodesInChaos
AppSettings는 해당 이름에서 알 수 있듯이 응용 프로그램 별 설정 모음입니다. 라이브러리는 여러 응용 프로그램에서 재사용 할 수있는 코드를 나타내며 이러한 응용 프로그램은 설정을 그룹화하는 여러 가지 방법을 가질 수 있습니다. 물론 휴대용 클래스 라이브러리로 작업하는 경우 AppSettings를 사용하는 것보다 구성 정보에 액세스하는 더 일반적인 방법을 찾아야합니다. –
- 1. 휴대용 클래스 라이브러리의 타이머
- 2. 휴대용 클래스 라이브러리의 WebProxy
- 3. 휴대용 라이브러리의 MessageBoxResult
- 4. 휴대용 클래스 라이브러리의 많은 스핀에 대한 Spinwait
- 5. 휴대용 라이브러리의 현지화
- 6. 휴대용 라이브러리의 비동기 프로그래밍
- 7. 읽을 수 없습니다. 클래스 라이브러리의 App.config 값
- 8. NDepend가 휴대용 클래스 라이브러리의 어셈블리 특성을 보지 못했습니다.
- 9. 휴대용 클래스 라이브러리의 MvvmLight - 단위 테스트 수행 방법
- 10. ASP.NET MVC에서 참조한 클래스 라이브러리의 구성 파일
- 11. 클래스 라이브러리의 구성 설정을 어떻게 관리합니까?
- 12. Universal App 휴대용 라이브러리의 색상은 무엇입니까?
- 13. 휴대용 클래스 라이브러리 버전 관리
- 14. 휴대용 클래스 라이브러리 테스트
- 15. 휴대용 클래스 라이브러리, XmlAnyElementAttribute
- 16. 휴대용 클래스 라이브러리 반영
- 17. 휴대용 클래스 라이브러리 내에서 클래스 라이브러리의 정적 속성 복원 Windows Phone에서 삭제 표시 후
- 18. 정적 라이브러리의 클래스 서브 클래스
- 19. C# 클래스 라이브러리의 app.config 파일
- 20. 휴대용 클래스 라이브러리로 SOAP 서비스 문제를 해결하는 방법은 무엇입니까?
- 21. Reflection.Emit을 통한 휴대용 클래스 라이브러리 생성
- 22. FtpWebRequest가 휴대용 클래스 라이브러리에서 찾을 수 없습니다.
- 23. 휴대용 클래스 라이브러리가 실제로 무엇을 해결합니까?
- 24. .NET에서 .ToShortDateString의 결과. 휴대용 클래스 라이브러리
- 25. 휴대용 클래스 라이브러리 대 클래스 라이브러리
- 26. 클래스 라이브러리의 WCF 서비스 참조
- 27. AutoMapper - 클래스 라이브러리의 객체를 Silverlight 클래스 라이브러리의 객체에 매핑
- 28. 클래스 라이브러리의 클래스를 사용하여 다른 클래스 라이브러리의 기본 클래스로 사용하십시오.
- 29. 휴대용 클래스 라이브러리 System.Object 오류
- 30. 휴대용 클래스 라이브러리 + XDocument.Load (uri)?
'ConfigurationManager'에 액세스하는 일반 라이브러리는 저에게 다소 의심 스럽습니다. 그 응용 프로그램이 구성 객체를 라이브러리에 전달해야합니까? – CodesInChaos