2009-04-20 3 views
3

마치 WCF 프록시 코드를 별도의 DLL로 이동할 수없는 것처럼 보입니다. (예를 들어 내가 실행 한 모든 예제에서 볼 수 있듯이 EXE와 반대입니다.)WCF 및 프록시 코드를 DLL로 이동합니다. 가능한가?

내가 이것을하려고하는 이유는 다른 클라이언트 (아마도 관리되지 않는 코드)가 내 프록시 코드를 호출하기를 원하기 때문입니다.이 코드는 WCF에 대해 아무것도 모르는 경우가 있지만 프록시에 의해 노출 된 외관일까요?).

동일한 솔루션 내에서 다른 VS 프로젝트에 새 프록시를 만드는 다음 코드를 이동할 때마다 ""ServiceModel 클라이언트 구성에서 'localhost.IRemoteCommandService'계약을 참조하는 기본 끝점 요소를 찾을 수 없습니다. 섹션 "예외. 프록시 코드 (자동 생성 비주얼 스튜디오에서)입니다 같은 프로젝트의 Main 메서드 내에서 사용 할 때마다

localhost.RemoteCommandServiceClient proxy = 
    new localhost.RemoteCommandServiceClient(); 

동일한 코드가 원활하게 작동합니다.

아이디어가 있으십니까? 내 프록시의 클라이언트 코드는 서비스 모델 XML 구성을 프록시로 가질 필요가 없기 때문에 WCF 프록시 코드를 DLL로 옮기는 것이 목적을 상쇄 할 수 있기를 바랍니다.

덕분에, 스테파노

답변

2

클라이언트에서 끝점 구성을하지 않으려면 코드에서 모든 것을 지정하여 프록시 DLL에 포함시켜야합니다.

다른 옵션으로 one과 같은 동적 프록시를 사용하면 클라이언트 응용 프로그램에서 serviceModel을 사용할 수 없게됩니다.

+0

감사합니다. 끝점 정보를 코딩하는 것이 트릭을 만들었지 만 (피할 수 있었기를 바랬지 만). –

4

은 엔드 포인트는 참으로 일반적으로 구성 파일에 지정됩니다. 설정 파일에있는 serviceModel 데이터를보고 호출 app.config에 복사해야합니다. 코드에서 프록시를 만드는 좀 더 자세한 방법을 사용해야합니다 (코드를 통해 주소, 바인딩, 구성 등 지정). 생성자에게).

관련 문제