9

Khi tôi thêm một tham chiếu dịch vụ WCF trong Visual Studio 2008, một thư mục có tên Service Reference \ ServiceReferenceNamespace được tạo ra.Các tài liệu tham khảo dịch vụ WCF

Trong thư mục này, có các tệp có tên Service.xsd, Service1.xsd, Service2.xsd, Service3.xsd và Service4.xsd. Các tệp không trùng lặp - các tệp khác nhau xác định các loại và phần tử khác nhau. Khi tôi lần đầu tiên tạo ra các dịch vụ refernece, chỉ có một tập tin nhưng nhiều dịch vụ * -files đã được thêm vào khi tôi đã thêm nhiều DataContract và OperationContracts.

Có vẻ hơi lạ khi có 5 tệp khác nhau được tạo và không chỉ một tệp. Nếu tôi xóa các tài liệu tham khảo dịch vụ (và do đó các thư mục) và sau đó thêm nó một lần nữa, các tập tin tương tự được thêm một lần nữa.

Có ai giải thích tại sao một số tệp được tạo chứ không phải chỉ một tệp?

Trả lời

4

Khi bạn thêm tham chiếu dịch vụ, VS lần đầu tải xuống siêu dữ liệu - dưới dạng tệp WSDL và XSD - mô tả dịch vụ. Chúng được lưu trữ trong thư mục ServiceReference. Sau đó, VS chạy một bước tạo mã bằng cách sử dụng các tệp đó làm đầu vào, tạo ra tệp Reference.cs hoặc .vb làm đầu ra.

+0

Có thể tôi không rõ ràng. Câu hỏi của tôi là tại sao có Service1.xsd, Service2.xsd, Service3.xsd và Service4.xsd và không chỉ Service.xsd. – Martin

+3

Bạn sẽ nhận được một tệp xsd cho mỗi không gian tên loại. Đối với các dịch vụ WCF sử dụng DataContractSerializer, bạn thường sẽ nhận được một vùng tên XSD cho mỗi không gian tên CLR mà các kiểu của bạn sử dụng, cộng thêm một không gian tên bổ sung cho các kiểu dựng sẵn. Nếu bạn muốn đặt tất cả các loại ứng dụng được định nghĩa của bạn vào một không gian tên XSD, bạn có thể sử dụng [DataContract (Namespace = "...")] để đặt nó vào bất kỳ URI nào. – alexdej

Các vấn đề liên quan