Можно скопировать содержание одного объекта другому динамично, если у них есть тот же интерфейс?

Например, если у меня есть два объекта, тот, который имеет Обезьяну типа и другую Собаку типа и их обоих реализация IAnimal, который является чем-то вроде этого:

interface IAnimal
{
  int numberOfEyes {get; set;}
  string name {get; set;}
}

Я хочу сделать что-то вроде этого:

Monkey monkey = new Monkey() { numberOfEyes = 7, name = "Henry" };
Dog dog = new Dog();
MyFancyClass.DynamicCopy(monkey, dog, typeof(IAnimal));
Debug.Assert(dog.numberOfEyes == monkey.numberOfEyes);

Я предполагаю, что можно создать класс как MyFancyClass с помощью отражения... у какого-либо умного человека есть идея?

Спасибо, Stephen

5
задан Stephen Oberauer 23 July 2010 в 16:50
поделиться