【发布时间】:2021-05-20 01:42:24
【问题描述】:
我有 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
- 当我尝试通过匿名类型执行此操作时,我得到“无法序列化匿名类型,因为没有无参数构造函数”
- 当我尝试使用命名类“MyClass”时,我收到错误“我的类不是预期的。使用 XmlInclude”,我尝试按 parital 类将此参数添加到 Declaration 和 PozycjeSzczegolowe 类。另外我尝试将 extraType 参数传递给 XmlSerializer 构造函数,但我仍然收到此错误
- 您还有其他想法吗?
【问题讨论】:
标签: c# .net xml serialization xsd