Użyłem narzędzia xsd.exe do wygenerowania klasy danych, ale wcf nie lubi wymiany klasy danych i zgłasza błąd
"Wystąpił błąd podczas próby serializacji parametru http://tempuri.org/:orderItems. Komunikat InnerException to „Typ „Store.Schemas.Order” z nazwą kontraktu danych „Order:http://schemas.datacontract.org/2004/07/Store.Schemas”. lista znanych typów — na przykład przy użyciu atrybutu KnownTypeAttribute lub przez dodanie ich do listy znanych typów przekazanych do DataContractSerializer.". Zobacz InnerException, aby uzyskać więcej informacji.
Istnieje wiele klas opartych na XSD. Zgodnie z MSDN , jest napisane http://msdn.microsoft.com/en-us /library/ms751512.aspx, wszystkie klasy danych, które mają być ozdobione KnownTypeAttribute,DataContractAttribute, DataMemberAttribute itp.
Czy istnieje sposób, w jaki mogę wygenerować klasę danych z xsd, która może być używana z usługą WCF? ponieważ zmiana klasy generowanej przez XSD.exe nie jest zalecana ani łatwa.
3 odpowiedzi
http://wscfblue.codeplex.com/ generator open source rozwiązał problem
Myślę, że pierwszym pytaniem jest to, czy masz również wsdl, który odnosi się do xsd. jeśli tak, możesz użyć scvutil.exe i przekazać ścieżkę wsdl i upewnić się, że pliki xsd również znajdują się w tym samym katalogu, co plik wsdl. to wygeneruje dla Ciebie wymagane klasy danych.
HTH
Jeśli chcesz generować klasy za pomocą XSD.exe, otrzymasz serializowalny typ danych XML oznaczony wszystkimi tymi atrybutami Xml, które kontrolują jego serializację przez XmlSerializer
. Wcf domyślnie używa DataContractSerializer
, który nie używa atrybutów używanych do opisywania serializacji. Musisz przełączyć się na XmlSerializer
, używając atrybutu XmlSerializerFormat
w swojej usłudze, operacji lub umowie serwisowej.
Podobne pytania
Nowe pytania
xml
XML (Extensible Markup Language) to ustrukturyzowany format dokumentu definiujący zasady kodowania tekstu. Używając tego znacznika, należy uwzględnić dodatkowe znaczniki, takie jak język programowania, zestawy narzędzi, używane technologie XML i inne znaczniki opisujące środowisko, w którym pojawił się problem. Elastyczność XML nadaje się do szerokiej gamy zastosowań do przesyłania danych przez ludzi i maszyny, dlatego należy być konkretnym, jeśli chodzi o narzędzia i biblioteki.