gpt4 book ai didi

c# - 创建可扩展属性类 (OOP)

转载 作者:太空狗 更新时间:2023-10-29 23:27:55 28 4
gpt4 key购买 nike

我有一个应用程序支持某些设备的多种类型和版本。它可以连接到这些设备并检索各种信息。

根据设备的类型,我有一个(除其他外)可以包含各种属性的类。有些属性是所有设备共有的,有些是特定设备所独有的。

此数据被序列化为 xml。

在这些设备的 future 版本中实现支持 future 属性并与以前的应用程序版本向后兼容的类的首选方法是什么?

我可以想到几种方法,但我发现它们都不是很好:

  • 使用名称-值对的集合:
    • 优点:良好的向后兼容性(我的应用程序的 xml 和以前版本)和可扩展性,
    • 缺点:没有类型安全,没有智能感知,需要实现自定义 xml 序列化(以处理不同的 value 对象)
  • 为每个新设备创建派生属性类:
    • 优点:类型安全
    • 缺点:必须使用 XmlInclude 或自定义序列化来反序列化派生类,与以前的 xml 模式不向后兼容(尽管通过实现自定义序列化我可以 跳过未知属性?),需要转换才能访问派生类中的属性。
  • 另一种方法?

顺便说一句,我正在使用 C#。

最佳答案

类似于 PropertyBag 的东西怎么样? ?

关于c# - 创建可扩展属性类 (OOP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1068061/

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