如何使用 XmlSerializer 序列化为只写属性?

问题描述

发现了一些奇怪的东西。我正在解析包含编码 HTML 的 Xml,所以我决定让读/写属性保存未编码的 HTML,然后是 XmlSerializer 可以使用的只写属性。但是,如果我不定义 getter,序列化程序会完全忽略它,即使我确实包含了 getter,它也不会被调用

这是我的代码...

[XmlElement("descHtmlEnc")]
public string EncodedDescriptionHTML {
    get => throw new NotSupportedException(); // <- This never gets called,but it won't work without it
    set{
        var myWriter = new StringWriter();
        HttpUtility.HtmlDecode(value,myWriter);
        DescriptionHtml = myWriter.ToString();
    }
}

public string? DescriptionHtml { get; set; }

上述工作,所以它本身不是一个拦截器,但我试图弄清楚为什么一个反序列化器甚至关心一个公共 getter 考虑到它从不使用它。那和我的强迫症很刺痛,因为我的 API 现在不干净。

那么...有没有什么方法可以装饰属性告诉反序列化器可以使用只写属性

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)