XmlSerializer 在 .Net 5 升级时中断

问题描述

我们有一组通过 xsd.exe 获得的类,用于序列化/反序列化一些 XML。我们在 .NET 4.7.2 上使用它,一切顺利。一旦我们尝试升级到 .NET 5,有些类工作正常,但其他类在 XMLSerializer 构造函数上失败,并出现以下错误

System.PlatformNotSupportedException: Compiling JScript/CSharp scripts is not supported

我已经搜索过这个错误,但我只得到了关于 WCF 的结果。有谁知道 XMLSerializer 中是否有可能引起此错误的更改?

解决方法

我发现了问题。如果它对某人有帮助,我将答案留在这里。我们有这样的属性:

/// <remarks/>
[XmlElement("EstimatedEndDateTime",typeof(System.DateTime),Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[XmlElement("FinalizedEndDateTime",Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
[XmlChoiceIdentifier("ItemElementName")]
public System.DateTime? Item
{
    get
    {
        return this.itemField;
    }
    set
    {
        this.itemField = value;
    }
}

我必须将 XmlElement 属性中的类型也更改为 System.DateTime?。奇怪的是,它曾经适用于 .Net 4.7.2。