Есть ли что-нибудь встроенное в .NET / C # для копирования значений между объектами?

Предположим, у вас есть 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, которое могло бы копировать значения, совпадающие с именами свойств (и, конечно, отказоустойчиво - у одного есть получение, а у другого - набор и т. Д.)?

var a = new ClassA(); var b = new classB();
a.CopyTo(b); // ??

Что-то вроде этого довольно просто в a язык вроде JavaScript.

Думаю, ответ отрицательный, но, возможно, есть и простая альтернатива. Я написал для этого библиотеку отражения, но если бы она была встроена в C # /. NET на более низком уровне, вероятно, она была бы более эффективной (и зачем изобретать колесо).

10
задан lucidquiet 23 January 2012 в 18:07
поделиться