gpt4 book ai didi

c# - 从未知类型数组创建对象的新实例

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

我正在尝试对自定义数据结构执行深层复制。我的问题是保存我要复制的数据的数组 (object[]) 有许多不同的类型(stringSystem.DateTime,自定义结构等)。执行以下循环将复制一个对象的引用,因此在一个对象中所做的任何更改都会反射(reflect)在另一个对象中。

for (int i = 0; i < oldItems.Length; ++i)
{
newItems[i] = oldItems[i];
}

是否有一种通用的方法来创建这些对象的新实例,然后将任何值复制到它们中?

附言必须避免第三方库

最佳答案

你可以用 automapper 做到这一点(可从 Nuget 获得):

object oldItem = oldItems[i];
Type type = oldItem.GetType();
Mapper.CreateMap(type, type);
// creates new object of same type and copies all values
newItems[i] = Mapper.Map(oldItem, type, type);

关于c# - 从未知类型数组创建对象的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13930955/

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