gpt4 book ai didi

c# - 如何在 C#.NET 中不同类型的对象之间进行深度复制

转载 作者:可可西里 更新时间:2023-11-01 09:01:41 26 4
gpt4 key购买 nike

我需要按字段名称映射 ObjectV1 和 ObjectV2 之间的所有字段值和子集合。 ObjectV2 与 ObjectV1 位于不同的命名空间中。

模板 ClassV1 和 ClassV2 之间的继承已被打折,因为这 2 个类需要独立发展。我考虑过同时使用反射(速度很慢)和二进制序列化(速度也很慢)来执行公共(public)属性的映射。

是否有首选方法?还有其他选择吗?

最佳答案

作为每次都使用反射的替代方法,您可以创建一个辅助类,它使用 Reflection.Emit 动态创建复制方法 - 这意味着您只会在启动时受到性能影响。这可能会为您提供所需的灵 active 和性能组合。

由于 Reflection.Emit 非常笨拙,我建议查看 this Reflector 插件,非常适合构建此类代码。

关于c# - 如何在 C#.NET 中不同类型的对象之间进行深度复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/569154/

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