한 곳에서 다른 wcf 라이브러리의 서비스를 호스팅하려면 어떻게해야합니까?WCF 하나의 ServiceHost 많은 WCF 라이브러리
나는이
.DLLA
Public Class clientA : InterfaceA
.DLLB 같이, 2 개 WCF liberary의 DLL을 세웠
Public class clientB : InterfaceB
두 인터페이스 서비스 계약 속성과 자신의 운영 계약 (들이). 두 DLL을 공유 폴더에 배치하여 동적으로로드하고 서비스로 호스트 할 수 있습니다.
이제는 중간 계층으로 "AutoHosting"콘솔 응용 프로그램을 만들고 하나의 단일 ServiceHost를 사용하여이 두 가지 동일한 UriListen으로 할당해야합니다.
추신 : 나는 가능한 한 유연한 솔루션을 원합니다. 예를 들어 앞으로 DLLC를 추가 할 예정입니다. ServiceHost가 "AutoHosting"부분을 수정하지 않고 자동으로 DLLC 서비스를 선택할 수 있기를 바랍니다.
내가 가진 최선의 방법을 알려주십시오.
이렇게하려면 두 사람 중 한 사람이 "추가 작업"을해야합니다. DLL 작성자는 app.config (하드 코딩 된 값 또는 대체 구성 파일 위치)에 구성 설정없이 서비스를 실행할 수 있도록 DLL을 작성해야하거나 DLL 사용자가 자신의 구성 파일을 수정해야합니다. DLL의 게시 된 끝점 설정 어느 것을하고 싶은가요, 각각에 대한 해결책은 약간 다릅니다. –
또한 DLLA와 DLLB가 DLL이 내부에서 사용할 수있는 클래스와 인터페이스의 이름 같은 정보를 반환 할 수있는 클래스에서 구현해야하는 마스터 "플러그인 인터페이스"를 정의 할 수있는 단일 프로젝트를 참조 할 수 있습니다 DLL. –
Scott, 답변 해 주셔서 감사합니다. 50 + dll이 필요하기 때문에 추가 작업이 필요하다면 우리는 그렇게 할 것이므로 괜찮습니다. 웹에서 찾은 유일한 해결책은 부분 클래스를 사용하는 것입니다. 그러나 일부 서비스 나 인터페이스를 추가 할 때마다 내 DLL을 다시 컴파일해야하기 때문에 사용하지 않으려합니다. – John