2016-06-26 26 views
2

私は、保存しようとしているMicrosoft CRMに対するSOAP要求/応答を扱っています。シリアライズしようとしているResponseオブジェクトはMicrosoft.Xrm.Sdk.Metadata.OptionSetMetadataBasehttps://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.metadata.optionsetmetadata.aspx)です。私は、この拡張メソッドを使用して、私のオブジェクトをシリアル化しようとすると:SOAP経由で送信されたオブジェクトのシリアル化

public static string Serialize(this IExtensibleDataObject obj, bool indent = false) 
{ 
    NetDataContractSerializer contractSerializer = new NetDataContractSerializer(); 
    using (StringWriter stringWriter = new StringWriter((IFormatProvider) CultureInfo.InvariantCulture)) 
    { 
    using (XmlTextWriter xmlTextWriter = new XmlTextWriter((TextWriter) stringWriter)) 
    { 
     if (indent) 
     { 
     xmlTextWriter.Formatting = Formatting.Indented; 
     xmlTextWriter.Indentation = 2; 
     } 
     contractSerializer.WriteObject((XmlWriter) xmlTextWriter, (object) obj); 
     return stringWriter.ToString(); 
    } 
    } 
} 

私はこのエラーを取得する:私はちょうどSOAPリクエストを経由してこの情報を取得したので、私はこれが可能であると仮定します

threw an exception of type 'System.Runtime.Serialization.InvalidDataContractException' 
    Data: {System.Collections.ListDictionaryInternal} 
    HResult: -2146233088 
    HelpLink: null 
    InnerException: null 
    Message: "Type 'Microsoft.Xrm.Sdk.Metadata.OptionMetadataCollection' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. If the type is a collection, consider marking it with the CollectionDataContractAttribute. See the Microsoft .NET Framework documentation for other supported types." 
    Source: "System.Runtime.Serialization" 
    StackTrace: "at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.ThrowInvalidDataContractException(String message, Type type) 
     at System.Runtime.Serialization.DataContract.ThrowTypeNotSerializable(Type type) 
     at System.Runtime.Serialization.CollectionDataContract.GetValidContract(SerializationMode mode) 
     at System.Runtime.Serialization.XmlObjectSerializerContext.GetDataContract(Int32 id, RuntimeTypeHandle typeHandle) 
     at System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.GetDataContract(Int32 id, RuntimeTypeHandle typeHandle) 
     at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) 
     at System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) 
     at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerializeReference(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) 
     at WriteOptionSetMetadataToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract)    
     at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context) 
     at System.Runtime.Serialization.NetDataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContract contract, Hashtable surrogateDataContracts) 
     at System.Runtime.Serialization.NetDataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph) 
     at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) 
     at System.Runtime.Serialization.NetDataContractSerializer.WriteObject(XmlWriter writer, Object graph) 
     at DLaB.Common.Extensions.Serialize(IExtensibleDataObject obj, Boolean indent)" 
    TargetSite: {Void ThrowInvalidDataContractException(System.String, System.Type)} 

ので、それはちょうど逆シリアル化されました。これが役に立った場合、以下のSOAP応答があります。

<ExecuteResponse xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services"> 
    <ExecuteResult xmlns:b="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <b:ResponseName>RetrieveAllOptionSets</b:ResponseName> 
     <b:Results xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic"> 
      <b:KeyValuePairOfstringanyType> 
       <c:key>OptionSetMetadata</c:key> 
       <c:value i:type="d:ArrayOfOptionSetMetadataBase" xmlns:d="http://schemas.microsoft.com/xrm/2011/Metadata"> 
        <d:OptionSetMetadataBase i:type="d:OptionSetMetadata"> 
         <d:MetadataId>0872a2b1-6db1-48a9-8aa2-1686f294b1e0</d:MetadataId> 
         <d:HasChanged i:nil="true"/> 
         <d:Description> 
          <b:LocalizedLabels> 
           <b:LocalizedLabel> 
            <d:MetadataId i:nil="true"/> 
            <d:HasChanged i:nil="true"/> 
            <b:IsManaged>true</b:IsManaged> 
            <b:Label>Need type</b:Label> 
            <b:LanguageCode>1033</b:LanguageCode> 
           </b:LocalizedLabel> 
          </b:LocalizedLabels> 
          <b:UserLocalizedLabel> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <b:IsManaged>true</b:IsManaged> 
           <b:Label>Need type</b:Label> 
           <b:LanguageCode>1033</b:LanguageCode> 
          </b:UserLocalizedLabel> 
         </d:Description> 
         <d:DisplayName> 
          <b:LocalizedLabels> 
           <b:LocalizedLabel> 
            <d:MetadataId i:nil="true"/> 
            <d:HasChanged i:nil="true"/> 
            <b:IsManaged>true</b:IsManaged> 
            <b:Label>Need</b:Label> 
            <b:LanguageCode>1033</b:LanguageCode> 
           </b:LocalizedLabel> 
          </b:LocalizedLabels> 
          <b:UserLocalizedLabel> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <b:IsManaged>true</b:IsManaged> 
           <b:Label>Need</b:Label> 
           <b:LanguageCode>1033</b:LanguageCode> 
          </b:UserLocalizedLabel> 
         </d:DisplayName> 
         <d:IsCustomOptionSet>false</d:IsCustomOptionSet> 
         <d:IsCustomizable> 
          <b:CanBeChanged>false</b:CanBeChanged> 
          <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName> 
          <b:Value>true</b:Value> 
         </d:IsCustomizable> 
         <d:IsGlobal>true</d:IsGlobal> 
         <d:IsManaged>true</d:IsManaged> 
         <d:Name>need</d:Name> 
         <d:OptionSetType>Picklist</d:OptionSetType> 
         <d:IntroducedVersion>5.0.0.0</d:IntroducedVersion> 
         <d:Options> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Must have</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Must have</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>0</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Should have</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Should have</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>1</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Good to have</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Good to have</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>2</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>No need</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>No need</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>3</d:Value> 
          </d:OptionMetadata> 
         </d:Options> 
        </d:OptionSetMetadataBase> 
        <d:OptionSetMetadataBase i:type="d:OptionSetMetadata"> 
         <d:MetadataId>3041d03c-4166-4814-a2d4-1e3d93caf2f1</d:MetadataId> 
         <d:HasChanged i:nil="true"/> 
         <d:Description> 
          <b:LocalizedLabels> 
           <b:LocalizedLabel> 
            <d:MetadataId i:nil="true"/> 
            <d:HasChanged i:nil="true"/> 
            <b:IsManaged>true</b:IsManaged> 
            <b:Label>Categories for connection roles.</b:Label> 
            <b:LanguageCode>1033</b:LanguageCode> 
           </b:LocalizedLabel> 
          </b:LocalizedLabels> 
          <b:UserLocalizedLabel> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <b:IsManaged>true</b:IsManaged> 
           <b:Label>Categories for connection roles.</b:Label> 
           <b:LanguageCode>1033</b:LanguageCode> 
          </b:UserLocalizedLabel> 
         </d:Description> 
         <d:DisplayName> 
          <b:LocalizedLabels> 
           <b:LocalizedLabel> 
            <d:MetadataId i:nil="true"/> 
            <d:HasChanged i:nil="true"/> 
            <b:IsManaged>true</b:IsManaged> 
            <b:Label>Category</b:Label> 
            <b:LanguageCode>1033</b:LanguageCode> 
           </b:LocalizedLabel> 
          </b:LocalizedLabels> 
          <b:UserLocalizedLabel> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <b:IsManaged>true</b:IsManaged> 
           <b:Label>Category</b:Label> 
           <b:LanguageCode>1033</b:LanguageCode> 
          </b:UserLocalizedLabel> 
         </d:DisplayName> 
         <d:IsCustomOptionSet>false</d:IsCustomOptionSet> 
         <d:IsCustomizable> 
          <b:CanBeChanged>false</b:CanBeChanged> 
          <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName> 
          <b:Value>true</b:Value> 
         </d:IsCustomizable> 
         <d:IsGlobal>true</d:IsGlobal> 
         <d:IsManaged>true</d:IsManaged> 
         <d:Name>connectionrole_category</d:Name> 
         <d:OptionSetType>Picklist</d:OptionSetType> 
         <d:IntroducedVersion>5.0.0.0</d:IntroducedVersion> 
         <d:Options> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Business</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Business</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>1</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Family</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Family</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>2</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Social</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Social</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>3</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Sales</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Sales</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>4</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Other</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Other</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>5</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Stakeholder</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Stakeholder</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>1000</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Sales Team</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Sales Team</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>1001</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Service</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Service</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>1002</d:Value> 
          </d:OptionMetadata> 
         </d:Options> 
        </d:OptionSetMetadataBase> 
        <d:OptionSetMetadataBase i:type="d:OptionSetMetadata"> 
         <d:MetadataId>8e76ca1c-8d7c-45d2-b870-25b108a31792</d:MetadataId> 
         <d:HasChanged i:nil="true"/> 
         <d:Description> 
          <b:LocalizedLabels> 
           <b:LocalizedLabel> 
            <d:MetadataId i:nil="true"/> 
            <d:HasChanged i:nil="true"/> 
            <b:IsManaged>true</b:IsManaged> 
            <b:Label>If there has been initial communication with this lead.</b:Label> 
            <b:LanguageCode>1033</b:LanguageCode> 
           </b:LocalizedLabel> 
          </b:LocalizedLabels> 
          <b:UserLocalizedLabel> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <b:IsManaged>true</b:IsManaged> 
           <b:Label>If there has been initial communication with this lead.</b:Label> 
           <b:LanguageCode>1033</b:LanguageCode> 
          </b:UserLocalizedLabel> 
         </d:Description> 
         <d:DisplayName> 
          <b:LocalizedLabels> 
           <b:LocalizedLabel> 
            <d:MetadataId i:nil="true"/> 
            <d:HasChanged i:nil="true"/> 
            <b:IsManaged>true</b:IsManaged> 
            <b:Label>Initial Communication</b:Label> 
            <b:LanguageCode>1033</b:LanguageCode> 
           </b:LocalizedLabel> 
          </b:LocalizedLabels> 
          <b:UserLocalizedLabel> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <b:IsManaged>true</b:IsManaged> 
           <b:Label>Initial Communication</b:Label> 
           <b:LanguageCode>1033</b:LanguageCode> 
          </b:UserLocalizedLabel> 
         </d:DisplayName> 
         <d:IsCustomOptionSet>false</d:IsCustomOptionSet> 
         <d:IsCustomizable> 
          <b:CanBeChanged>false</b:CanBeChanged> 
          <b:ManagedPropertyLogicalName>iscustomizable</b:ManagedPropertyLogicalName> 
          <b:Value>true</b:Value> 
         </d:IsCustomizable> 
         <d:IsGlobal>true</d:IsGlobal> 
         <d:IsManaged>true</d:IsManaged> 
         <d:Name>initialcommunication</d:Name> 
         <d:OptionSetType>Picklist</d:OptionSetType> 
         <d:IntroducedVersion>5.0.0.0</d:IntroducedVersion> 
         <d:Options> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Contacted</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Contacted</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>0</d:Value> 
          </d:OptionMetadata> 
          <d:OptionMetadata> 
           <d:MetadataId i:nil="true"/> 
           <d:HasChanged i:nil="true"/> 
           <d:Color i:nil="true"/> 
           <d:Description> 
            <b:LocalizedLabels/> 
            <b:UserLocalizedLabel i:nil="true"/> 
           </d:Description> 
           <d:IsManaged>true</d:IsManaged> 
           <d:Label> 
            <b:LocalizedLabels> 
             <b:LocalizedLabel> 
              <d:MetadataId i:nil="true"/> 
              <d:HasChanged i:nil="true"/> 
              <b:IsManaged>true</b:IsManaged> 
              <b:Label>Not Contacted</b:Label> 
              <b:LanguageCode>1033</b:LanguageCode> 
             </b:LocalizedLabel> 
            </b:LocalizedLabels> 
            <b:UserLocalizedLabel> 
             <d:MetadataId i:nil="true"/> 
             <d:HasChanged i:nil="true"/> 
             <b:IsManaged>true</b:IsManaged> 
             <b:Label>Not Contacted</b:Label> 
             <b:LanguageCode>1033</b:LanguageCode> 
            </b:UserLocalizedLabel> 
           </d:Label> 
           <d:Value>1</d:Value> 
          </d:OptionMetadata> 
         </d:Options> 
        </d:OptionSetMetadataBase> 
       </c:value> 
      </b:KeyValuePairOfstringanyType> 
     </b:Results> 
    </ExecuteResult> 
</ExecuteResponse> 

このエラーを回避するにはどうすればよいですか?

答えて

3

代わりにDataContractSerializerを使用してください。それはジョブを実行します。それがあったことを

public static string Serialize(this IExtensibleDataObject obj, bool indent = false) 
    { 
     DataContractSerializer contractSerializer = new DataContractSerializer(obj.GetType()); 
     using (StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture)) 
     { 
      using (XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter)) 
      { 
       if (indent) 
       { 
        xmlTextWriter.Formatting = Formatting.Indented; 
        xmlTextWriter.Indentation = 2; 
       } 
       contractSerializer.WriteObject(xmlTextWriter, obj); 
       return stringWriter.ToString(); 
      } 
     } 
    } 
+0

:それは[DataContract]または[Serializable]属性(デフォルトコンストラクタが唯一の公共のメンバーは、シリアライズされます+が必要です)が付いていないタイプをシリアル化することができます。驚くばかり。なぜ、どのようにして相手を使うべきでしょうか? – Daryl

+0

[this](https://blogs.msdn.microsoft.com/rjacobs/2010/04/15/datacontractserializer-vs-netdatacontractserializer/)と[this](http://stackoverflow.com/questions)をご覧ください。/7890693/netdatacontractserializer-vs-datacontractserializer) –