2009-03-17 38 views
22

dựa trên thông số WSDL từ W3 có khả năng thêm thẻ "wsdl: document" vào đầu ra WSDL để mọi người sử dụng dịch vụ web đó có giải thích/tài liệu tốt hơn về webservice này.Thêm nhận xét vào đầu ra WSDL từ WCF/.Net

Có ai biết cách làm cho WCF sử dụng các nhận xét/mô tả này hoặc cách viết mã trong C# mà các nhận xét đó được xuất dưới dạng một phần của wsdl không?

Xin cảm ơn, Michael

Trả lời

1

WCF sẽ không tự làm điều đó. Có các điểm mở rộng cho thế hệ WSDL mà bạn có thể sử dụng để thực hiện điều này ít nhất một phần: Tra cứu giao diện IWSDLExportExtension.

Tôi có một small example về cách triển khai tiện ích mở rộng xuất WSDL đơn giản trên trang web của tôi có thể giúp bạn bắt đầu.

+0

Cảm ơn - nhưng đó chỉ là bước đầu tiên. Điều tôi thực sự thích là khả năng xuất bất kỳ "/// comments ...." tôi đã thực hiện trên ServiceContract, OperationContract và DataContract vào WSDL và XSD. Bất kỳ ý tưởng? –

3

Nếu bạn đang thiết kế/mã hóa trong các lớp C#, được trang trí bằng [ServiceContract] và [OperationContract], thì tôi không biết cách xuất tài liệu bạn có thể có trên các lớp và phương thức đó vào WSDL , không may.

Tôi đã kinh hoàng bởi điều đó quá - tôi mong đợi bất kỳ /// bình luận trên lớp và phương pháp của tôi để hiển thị trong WSDL - không may mắn :-(

giải pháp của chúng tôi hiện nay là thế này: 1), chúng tôi tạo ra một "mô hình" cơ bản của giao diện dịch vụ của chúng tôi với tất cả các hoạt động trong C# 2) chúng tôi biên dịch thành một assembly 3) chúng tôi trích xuất siêu dữ liệu (WSDL, XSD) từ assembly đó và sau đó vứt bỏ C# "prototype" 4) chúng tôi tự thêm các chú thích (xs: annotation/xs: documentation) vào WSDL và XSD 5) từ bây giờ, WSDL/XSD là master - và chúng ta tạo giao diện của chúng ta từ các mô tả

Cồng kềnh và khó chịu, nhưng nó hoạt động khá tốt cho chúng tôi.

Tôi chắc chắn hy vọng VS2010/WCF 4.0 sẽ mang lại cho chúng tôi thêm một chút hỗ trợ trong lĩnh vực này !!

Marc

+0

Điều này có vẻ như là một cách tiếp cận tốt. – Cheeso

11

Dường như dự án cộng đồng WCFExtras trên CodePlex cung cấp một công việc xung quanh những hạn chế của .NET 3.5.

+1

Chỉ cần thử nó - hoạt động như một sự quyến rũ ngay cả khi giải pháp của tôi là trong .NET 4.0. Thanx Joannes –

0
[WebService(Namespace = "XXXXXXXXXXXXX", **Description**="V0.2.42")] 

Mô tả đặt bất cứ điều gì bạn muốn trong .NET 4.0, không chắc chắn mà các phiên bản ... Có lẽ một chút trễ trong việc trả lời, nhưng câu trả lời dường như phức tạp hơn cần thiết để thêm một lời giới thiệu để WSDL chỉ devs xem.

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