[英]Pass complex value to object for XML serialization
我有 XSD 文件,它是生成的基础文件(通过 xsd.exe 工具)C# 类用于序列化。 点网核心 3.1。 下面是生成的代码
public partial class Deklaracje {
public PozycjeSzczegolowe PozycjeSzczegolowe {get;set;}
}
public partial class PozycjeSzczegolowe {
[System.Xml.Serialization.XmlElementAttibute("Bank", typeof(BankPozycjeSzczegolowe))]
[System.Xml.Serialization.XmlElementAttibute("PodmiotNZ", typeof(PozycjeSzczegolowePodmiotNZ))]
public object[] Items {get;set;}
}
有我的序列化代码来获取 xml
var myObject = ??? // <= HERE IS PROBLEM
var data = new Declaracje
{
PozycjeSzczegolowe = new PozycjeSzczegolowe { Items = new [] {myObject} }
}
using (var ms = new MemoryStream())
{
using (var writer = new XmlTextWriter(ms, Encoding.UTF8))
{
var xml = new XmlSerializer(typeof(Deklaracje));
xml.Serializer(xmlTextWriter, data)
}
}
我的问题是如何将两种类型都传递给myObject : Bank和PodmiotNZ对象成功 XML 生成
尝试以下操作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
namespace ConsoleApplication181
{
class Program
{
static void Main(string[] args)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
Deklaracje data = new Deklaracje()
{
PozycjeSzczegolowe = new PozycjeSzczegolowe[]
{
new BankPozycjeSzczegolowe() { name = "John"},
new PozycjeSzczegolowePodmiotNZ() { name = "Mary"}
}
};
using (var ms = new MemoryStream())
{
using (XmlWriter writer = XmlWriter.Create(ms,settings))
{
XmlSerializer xml = new XmlSerializer(typeof(Deklaracje));
xml.Serialize(writer, data);
}
}
}
}
public partial class Deklaracje {
public PozycjeSzczegolowe[] PozycjeSzczegolowe {get;set;}
}
[XmlInclude(typeof(BankPozycjeSzczegolowe))]
[XmlInclude(typeof(PozycjeSzczegolowePodmiotNZ))]
public partial class PozycjeSzczegolowe {
}
public class BankPozycjeSzczegolowe : PozycjeSzczegolowe
{
public string name { get; set; }
}
public class PozycjeSzczegolowePodmiotNZ : PozycjeSzczegolowe
{
public string name { get; set; }
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.