2011-04-26 2 views
1

일 동안 나는 벽돌 벽에 머리를 대고있어 WCF Services 및 Silverlight에서 발생하는 문제를 해결하려고 노력했습니다.WCF와 Silverlight간에 동적으로 서비스 참조 공개

제 문제는 제가 5 개의 Silverlight 프로젝트 모듈을 하나의 마스터 Silverlight 응용 프로그램으로 동적으로 읽었습니다. 이러한 각 모듈에는 자체 비즈니스 계층과 DAL이 있으므로 WCF 서비스에 대한 자체 호출을 수행하지만 모듈을로드하고 WCF 명령을 실행하려고하면 ServiceReference가 존재하지 않는다는 오류 메시지가 표시됩니다. 이는 서비스가 마스터 프로젝트 Service Reference의 "ServiceReference.config"모듈의 일부이기 때문입니다.

Master Silverlight 프로젝트를 동적으로 가져 와서 ChannelFactory의 목록을 가져온 다음 채널을 만들고 모든 메타 데이터를 읽고 서비스 Refences를 완전히 제거 할 수 있습니까? 서비스 참조를 사용하는 데 어떻게 다가 가지요?

당신의 도움은 모두 대단히 감사합니다.

감사

로비

답변

2

예 당신이 할 수 있습니다. 이렇게하려면 생성 된 파일 "Reference.cs"를 복사하면됩니다.

  1. 프로젝트의 모든 파일을 표시하십시오.
  2. 서비스 참조를 확장하고 Reference.cs를 찾습니다.

이제 이것을 복사하여 일반 클래스로 프로젝트에 추가하고 응용 프로그램의 서비스 참조를 제거 할 수 있습니다. ChannelFactory의 경우이 코드를 통해 만들 수 있습니다 :

ChannelFactory<IServiceContract> factory = new ChannelFactory<IServiceContract>(endpoint); 
    IServiceContract channel = factory.CreateChannel(); 
+0

이 @Peyton Crow에 감사드립니다. 이것은 힙을 도왔습니다. Reference.Cs 정보가 클라이언트에 완벽하게 다운로드되었음을 결코 알지 못했습니다. –

+0

그걸로 좋은 걸 환영합니다! :) –