2011-11-14 2 views
2

svcutil.exe (또는 '서비스 참조 추가')를 사용하는 것이 왜 나쁜지 - 테스트 가능성, 밀접한 결합 등이 부족한 이유를 설명하는 자료가 많이 있습니다. 간단한 서비스를위한 클라이언트 프록시를 수동으로 만드는 것은 간단합니다. 인터페이스를 만들고 채널을 만듭니다.Silverlight PollingDuplex 클라이언트/프록시를 수동으로 만들려면 어떻게해야합니까?

IMessageServiceAsync service = new ChannelFactory<IMessageServiceAsync>("BasicHttpBinding_IMessageEndpoint").CreateChannel(); 

Silverlight PollingDuplex 클라이언트와 비슷한 기능을 수행하고 싶습니다.

생성 된 클라이언트가 System.ServiceModel.DuplexClientBase에서 상속됩니다. 수동으로 생성 한 클라이언트도 필요하다고 가정합니다. 또는이 기본 클래스를 구현하지 않고 모든 클라이언트 측 이중 콜백 기능을 연결하는 방법이 있습니까?

누구도 이것을 시도한 적이 있습니까? 심지어 가능할까요?

답변

2

것이 가능하다 - 당신은 당신이 당신의 예에서했던 ChannelFactory<T>와 유사한 방법으로 프록시를 생성하기 위해 DuplexChannelFactory<T> 클래스를 사용할 수 있지만 구현이 포함됩니다 추가 매개 변수 (InstanceContext을 입력)을 통과해야합니다 서버에서 메시지를 수신하는 데 사용되는 콜백 인터페이스

+0

굉장합니다. 감사합니다. Carlos. 관심이 없으면 다른 잠재적 인 함정이 있습니까? – MalcomTucker

+0

'DuplexChannelFactory' 자체에 특정하지 않습니다. Add Service Reference ('DuplexChannelBase'의 서브 클래스)에 의해 생성 된 프록시는'DuplexChannelFactory.CreateChannel()'에 의해 생성 된 것과 같습니다. – carlosfigueira

관련 문제