How to serialize/deserialize generated WCF proxy code?

I am trying to serialize/deserialize generated WCF web service proxy code from svcutil. While I'm able to serialize the objects, I'm not able to deserialize them back to objects. Here's the XML I generated through serialization:

<RootObject xmlns="http://schemas.myco.com/online/sync/2008/11">
    <WrapperObject>
        <Objects>
            <SomeObject p4:type="Foo" ContextId="d5f9f021-b2a1-47ba-9f25-1e068194dc87" ObjectId="fad3ef87-3944-459d-b45b-1e4e52ef24db" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.myco.com/online/sync/2008/11" />
        </Objects>
      </WrapperObject>
</RootObject>

I have a couple questions:

  1. I am already using XmlSerializerNamespaces to declare the namespace to match the namespace specified in the generated proxy code. How come there is still a "p4" tag that it added to the "SomeObject" tag and a new xml namespace added (xmlns:p4="http://www.w3.org/2001/XMLSchema-instance").

     using (XmlWriter xmlWriter = XmlWriter.Create(stringBuilder, xmlSettings))
     {
     XmlSerializerNamespaces namespaces = новый XmlSerializerNamespaces ();
     namespaces.Add (string.Empty, defaultNamespace);
    
     XmlSerializer serializer = новый XmlSerializer (typeof (T), defaultNamespace);
     сериализатор.Serialize (xmlWriter, objectToBeSerialized, пространства имен);
    
     вернуть stringBuilder.ToString ();
     }
    
  2. Когда я пытаюсь десериализовать XML с помощью следующего кода, я получаю следующую ошибку: «System.InvalidOperationException: произошла ошибка при создании XML-документа. ---> System.Xml.XmlException: 'p4: type' - повторяющееся имя атрибута. "

      using (TextReader textReader = new StringReader (xmlString))
     {
     используя (XmlReader xmlReader = XmlReader.Create (textReader))
     {
     XmlSerializer serializer = новый XmlSerializer (typeof (T), defaultNamespace);
     return (T) serializer.Deserialize (xmlReader);
     }
     }
    
  3. Код прокси генерируется svcutil для связи с веб-службой WCF. Все сгенерированные объекты сериализуются / десериализуются правильно, когда я просто использую вызов веб-службы.

Были ли у кого-нибудь ранее подобные проблемы?

5
задан dbc 20 December 2016 в 04:50
поделиться