例如,如果我有两个对象,一个是 Monkey 类型,另一个是 Dog 类型,并且它们都实现了 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 这样的类...任何聪明的人都有想法吗?
谢谢, 斯蒂芬
最佳答案
只是把它混在一起...你也可以使用 AutoMapper将一个对象映射/复制到另一个对象....他们甚至不必实现相同的接口(interface)。要使其自动运行,只需匹配属性的名称,然后您只需执行以下操作即可:
Mapper.Map<IAnimal, MyClass>(myInstance);
关于c# - 如果一个对象具有相同的接口(interface),是否可以动态地将一个对象的内容复制到另一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3319240/