将 XML 反序列化为对象:具有 xsi:nil="true" 的 XML 元素对于对象中的相应 属性 应该具有空值(而不是空值)

Deserializing an XML into a object: XML element with xsi:nil="true" should have null value (and not empty value) for respective property in object

将下面的 XML 反序列化为 Parent class 时,ElementTwo 和 ElementThree 是空字符串,这是预期的。但是 ElementOne 应该是空的,但它也是空字符串。

What does i:nil="true" mean?

XML

<?xml version = \"1.0\" ?>
<Parent
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ElementOne xsi:nil="true"/>
<ElementTwo></ElementTwo>
<ElementThree />
<ElementFour>Value</ElementFour>
</Parent>

C#Class

public class Parent
{
    public string ElementOne { get; set; }
    public string ElementTwo { get; set; }
    public string ElementThree { get; set; }
    public string ElementFour { get; set; }
}

当将 XML 反序列化为对象时,具有 xsi:nil="true" 的 XML 元素不会被转换为 null。相反,它被分配为空字符串。但我有一个要求,它应该只转换为 null。请帮我找出解决办法或指出我哪里出错了

我已经给出了下面使用的示例 fiddle link:

https://dotnetfiddle.net/VfNJYv

[XmlElement(IsNullable=true)] 

以上 Public string ElementOne get/set 属性

.NET fiddle