9

Visual Studio 2008에서 WCF 서비스 참조를 추가하면 Service Reference \ ServiceReferenceNamespace라는 디렉터리가 만들어집니다.이러한 WCF 서비스 참조 파일은 무엇입니까

이 디렉토리에는 Service.xsd, Service1.xsd, Service2.xsd, Service3.xsd 및 Service4.xsd라는 파일이 있습니다. 파일은 중복되지 않습니다. 서로 다른 파일은 서로 다른 유형과 요소를 정의합니다. 처음으로 서비스를 만들 때 하나의 파일 만 있었지만 더 많은 DataContract 및 OperationContracts를 추가하면 더 많은 Service * 파일이 추가되었습니다.

5 가지 파일이 생성되고 하나가 아닌 이상한 것처럼 보입니다. 서비스 참조 (및 디렉토리)를 삭제 한 다음 다시 추가하면 동일한 파일이 다시 추가됩니다.

누구나 왜 여러 파일이 만들어 졌는지 설명 할 수 있습니까?

답변

4

서비스 참조 추가를 수행하면 VS는 먼저 서비스를 설명하는 WSDL 및 XSD 파일과 같은 메타 데이터를 다운로드합니다. 이것들은 ServiceReference 디렉토리에 저장됩니다. 그런 다음 VS는 해당 파일을 입력으로 사용하여 Reference.cs 또는 .vb를 출력으로 생성하는 코드 생성 단계를 실행합니다.

+0

아마도 나는 명확하지 않았습니다. 제 질문은 Service.xsd, Service2.xsd, Service3.xsd 및 Service4.xsd뿐 아니라 Service.xsd가있는 이유였습니다. – Martin

+3

유형 네임 스페이스 당 하나의 xsd 파일이 생성됩니다. DataContractSerializer를 사용하는 WCF 서비스의 경우 일반적으로 형식에서 사용하는 CLR 네임 스페이스 당 하나의 XSD 네임 스페이스와 기본 제공 형식에 대한 추가 네임 스페이스를 얻습니다. 모든 응용 프로그램 정의 형식을 하나의 XSD 네임 스페이스에 넣으려면 [DataContract (Namespace = "...")]을 사용하여 임의의 URI로 설정할 수 있습니다. – alexdej

관련 문제