Существует множество вариантов глубокого клонирования в c# (двоичные файлы, отражения, деревья выражений, сериализация и т. Д. c.). Есть также много вопросов и ответов по этому поводу, но все они кажутся довольно старыми (например, до 2014 года).
У меня есть сценарий, в котором мне нужно клонировать объект, чтобы сохранить его измененный экземпляр, вот так ...
public class Attempt {
public string Id;
public DateTime ExpirationDateTime;
...
several other properties that will be the same
}
public Attempt CreateAttemptFromAttempt(Attempt attempt)
{
// I could do this
Attempt cloned = new Attempt() { Id = "aUniqueId", ExpirationDateTime = "new date time" }
_repository.Save(cloned);
}
Учитывая этот, казалось бы, простой пример, есть ли предпочтительный алгоритм клонирования? Я бы предпочел не делать это вручную. Я подумал об использовании AutoMapper, потому что он уже находится в проекте, но обнаружил, что даже создатель рекомендует не использовать его для этого.