2011-11-02 7 views
1

가 나는 이런 기능이 WCF 연결에서 데이터 집합 스키마를 무시하는 방법 : 내가 생성 된 "서비스 참조"를 통해이 함수를 호출 클라이언트 측에내 응용 프로그램의 서버 측에

public function GetDS as MyTypedDS 
    Dim dsRetVal as new MyTypedDS 
    'Make fantastic things with the dataset 
    return dsRetVal 
end function 

을 :

Dim ds as Reference1.MyTypedDS = myRefInst.GetDS 

트래픽을 줄이기 위해 입력 된 데이터 집합의 스키마 직렬화를 어떻게 비활성화 할 수 있습니까?

반환하기 전에 'dsRetVal'의 SchemaSerializationMode를 ExcludeSchema로 설정하는 것으로 충분합니까? 또는이 옵션이 WCF에 의해 무시됩니까?

+6

모든 진지함에서 - 당신은'DataSet'을 WCF를 통해 보내는 것은 정말 끔찍한 일입니다. 일반 유형화 된 객체는 매우 바람직합니다. 대역폭을 줄이는 것이 목표라면, 대체 시리얼 라이저가 있지만 'DataSet'에는 도움이되지 않습니다. –

+0

'DataSet.RemotingFormat'을 제안했지만,'DataContractSerializer'로 이것을 테스트 해 보았습니다. 사용되지 않았기 때문에 걱정하지 마십시오. –

+0

내 가게 (금융 제품 상점)의 노인들은 집안의 데이터 저장소에 글을 쓰기로 결정했습니다. "Net remoting"이상의 DataSet은 진짜 달팽이였습니다. 이 데이터 저장소는 WCF의 모든 .net 원격 작업을 WCF로 마이그레이션 할 때 여전히 WCF의 매력처럼 작동합니다. –

답변

0

당신이 SerializationFormat.Binary에 데이터 집합에 RemotingFormat을 설정 봤어 감사? 우리는 DataSet의 .Net Remoting (이 과정은 절대적으로 필요할 때만 사용합니다)에서 광범위하게 사용하며 성능에 크게 도움이됩니다.

다른 옵션의 몇 :

1) 바이너리 직렬화 데이터 집합 단지이 ByteArray

2) 문자열 형식으로 데이터 집합을 직렬화 전송 (즉, JSON은) 다음 결과 문자열을 압축 및 전송 압축 된 데이터.

관련 문제