微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用 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 举报,一经查实,本站将立刻删除。