Предположим, что у вас есть 2 класса:
public class ClassA {
public int X { get; set; }
public int Y { get; set; }
public int Other { get; set; }
}
public class ClassB {
public int X { get; set; }
public int Y { get; set; }
public int Nope { get; set; }
}
Теперь представьте, что у вас есть экземпляр каждого класса, и вы хотите скопировать значения из a в b. Есть ли что-то вроде MemberwiseClone, которое скопирует значения, в которых имена свойств совпадают (и, конечно, отказоустойчивы - у каждого есть get, а другой - и т.д.)?
var a = new ClassA(); var b = new classB();
a.CopyTo(b); // ??
Что-то вроде этого довольно легко на языке JavaScript.
Я предполагаю, что ответ отрицательный, но, возможно, есть и простая альтернатива. Я написал библиотеку отражений, чтобы сделать это, но если встроенный в С#/.NET на более низком уровне, вероятно, будет более эффективным (и зачем изобретать колесо).