gpt4 book ai didi

c# - 是否可以在 .net 中扩展类属性?

转载 作者:太空宇宙 更新时间:2023-11-03 18:49:10 24 4
gpt4 key购买 nike

我有一个图书馆。该库包含名为 tPage 的类。此 tPage 类未标记为可序列化。我不能修改这个库。我需要序列化这个。

如何扩展这个类的属性?

这可能吗?

最佳答案

如果该类未标记为[Serializable],则无法序列化该类。如果您继承它,并将属性应用于您的子类,序列化程序将抛出异​​常,因为它无法序列化基类成员。

解决这个问题有两种实用的方法:

  • 创建一个新类 tSerializablePage,它包含与 tPage 相同的数据并标记为 [Serializable]。当您要执行序列化并将 tSerializablePage 传递给序列化程序时,将值从 tPage 实例复制到 tSerializablePage 实例。当此实例被反序列化时,您将负责根据它包含的值创建 tPage 的实例。

  • 实现 ISerializationSurrogate tPage 的接口(interface),提供一种直接序列化和反序列化 tPage 实例的机制。

如果您不熟悉手动序列化接口(interface),前一种解决方案可能更容易实现,但该接口(interface)是 .NET Framework 解决序列化不可序列化类问题的方法。

关于c# - 是否可以在 .net 中扩展类属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1653962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com