2011-06-07 32 views
6

Tôi đang làm việc trên một dự án sử dụng cách tiếp cận đầu tiên của hợp đồng. Tôi được tặng WSDL và ba xsd's. Khi tôi sử dụng svcutil nó tạo ra một bọc xung quanh lớp phản ứng như vậy:svcutil tạo ra các lớp bao bọc không cần thiết

public partial class getDataByIdResponse1 { 

    public getDataByIdResponse getDataByIdResponse; 

    public getDataByIdResponse1() { 
    } 

    public getDataByIdResponse1(getDataByIdResponse getDataByIdResponse) { 
     this.getDataByIdResponse = getDataByIdResponse; 
    } 
} 

Các getDataByIdResponse được gói bên trong một đối tượng getDataByIdResponse1. Điều này được thực hiện bởi svcutil và tôi không biết tại sao. Các đối tượng getDataByIdResponse1 không tồn tại trong WSDL:

<wsdl:message name="getDataById"> 
    <wsdl:part name="response" element="tns:getDataByIdResponse"/> 
</wsdl:message> 

<xs:element name="getDataByIdResponse"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="data" type="sbc:DataType" minOccurs="1" maxOccurs="1" /> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

Tại sao loại getDataByIdResponse bọc trong getDataByIdResponse1? Có công tắc nào cho svcutil Tôi có nên sử dụng không?

Trả lời

0

Tôi đang trong tình cảnh tương tự (hợp đồng đầu tiên) và svcutil đang tạo ra loại này cùng một đoạn mã cho tôi nhưng tôi chỉ nhắm mắt lại hít một hơi thật sâu và chấp nhận nó :-)

Chỉ cần sử dụng các loại mà không có postfix số và nó chỉ hoạt động.

+0

"Chỉ cần sử dụng các loại không có mã bưu chính số và nó chỉ hoạt động.", Tôi không nghĩ rằng mã C# sẽ biên dịch theo cách đó. các kiểu không có postfix số là các tên hoàn toàn khác nhau cho các trình biên dịch. –

0

Tôi đang ở cùng một chiếc thuyền với bạn nhưng tôi không chỉ muốn sống với nó. Tôi muốn tạo ra các hợp đồng sạch (chưa được mở). Nếu wsdl và xsd đã được trao cho bạn thì có một số quy tắc mà lược đồ của bạn và wsdl cần phải làm theo để cho svc util để tạo ra các mã chưa được mở. Các liên kết này đã giúp tôi hiểu được những vấn đề tốt hơn một chút

http://pzf.fremantle.org/2007/05/handlign.html

http://mharbauer.wordpress.com/2007/10/19/wcf-datacontract-serializer-and-documentwrapped/

Còn bây giờ schema và wsdl của tôi là đủ nhỏ mà tôi có thể tinh chỉnh chúng phải tuân theo quy tắc này.
Tuy nhiên, giống như Ron, tôi cũng đã ở trong các tình huống mà điều dễ nhất là chỉ sống với nó.

Hy vọng điều này sẽ hữu ích.

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