2011-05-11 3 views

답변

1

비누 표준은 제네릭 개념을 지원하지 않으므로 WCF에서 직접 지원되지 않습니다. 그러나 클라이언트와 서비스간에 ServiceContract DLL을 공유하여 this support if you control both the client and the WCF service을 얻을 수 있습니다. 이 아니므로 권장 SOA 우수 사례이므로 이것이 실제로 원하는 것인지 확인하십시오.

여기에서이 접근법이 어떻게 작동하는지 설명하는 is an article입니다. ServiceContract (이 서비스 구현 DLL이 아닌)를 공유하고 WCF ChannelFactory 클래스를 사용하면 ChannelFactory 클래스가 동적으로이 작업을 수행하므로 프록시 클래스를 생성 할 필요가 없습니다. ServiceContract 어셈블리에는 포함 된 모든 논리도 공유되므로이 접근법의 주요 결함 인 참조 된 DataMember로 표시된 모든 클래스가 포함되어야합니다. DataMember 클래스가 데이터 전송 객체 (DTO) 일뿐 아니라 SOA 테넌트를 완전히 변형시키지 않습니다. 이 기사에서는 WCF ClientBase 클래스를 사용하여이 작업을 수행하는 방법에 대해서도 설명합니다.

+0

그래,하지만 'Convert.ChangeType'과 같은 것이 가능 할까? – Aaaaaaaa

+0

변환하려는 유형이 "서비스 참조 추가"또는 SvcUtil이 수행하지 않는 IConvertible 인터페이스를 구현해야하기 때문에 실제로는 그렇지 않습니다. 나는 [이 줄에있는 질문을 여기에 답했다.] (http://stackoverflow.com/questions/187006/how-to-expose-objects-through-wcf) 거기에 대한 답은 광산뿐만 아니라 그 한계를 이해하는 데 도움이 될 수 있습니다. WCF 개체 기본적으로 WCF 객체는 .NET 객체가 아닌 ** ** 객체입니다. 가장 가까운 곳은 일반적으로 좋은 것은 아니지만 계약 DLL을 공유하는 것입니다. –

관련 문제