このエラーが発生します 'ObjectContent`1'タイプは、コンテンツタイプ 'application/xml; charset = utf-8 'となります。混合値xml要素をシリアライズすると、エラーが発生します
予期しないタイプのデータコントラクト名を持つ 'A' ': http://schemas.datacontract.org/2004/07/'。 DataContractSerializerを使用する場合は、DataContractResolverを使用するか、または既知のタイプのリストに静的に知られていないタイプ を追加してください(たとえば、 KnownTypeAttribute属性を使用するか、DataContractSerializerに渡される既知のタイプ のリストに追加します)。
2個のタイプAまたはB
Xsd.exeでは、このようなオブジェクトを生成することができる性質を持つオブジェクトシリアライズ:
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class Doc
{
[XmlElement("A", typeof(A))]
[XmlElement("B", typeof(B))]
[System.Xml.Serialization.XmlTextAttribute(typeof(string))]
public object Item { get; set; }
}
タイプA及びBは、あまりにも定義されているが、 1つのプロパティを持つ普通のクラス。
と私は罰金コンパイルが、それはシリアル化しようとしたとき、それは
そして、あなたは、シリアライザコードを含めてくださいすることができますか? –
クラスを['XmlSerializer'属性](https://msdn.microsoft.com/en-us/library/83y7df3e%28v=vs.110%29.aspx)でマークしていますが、あなたの例外は[ DataContractSerializer'](https://msdn.microsoft.com/en-us/library/ms731072%28v=vs.110%29.aspx)は、異なる属性を使用する完全に異なるシリアライザです。そのためのクラスを生成するには、['svcutil.exe'](https://msdn.microsoft.com/en-us/library/aa347733%28v=vs.110%29.aspx)を使う必要があります。 – dbc
これはmvcプロジェクトですが、scvutil.exeを使用する必要がありますか?私はxsdしか持っていません –