假设我有两对具有完全相同属性的两个不同类.
public class Class1 { public int IntValue { get; set; } public string StringValue { get; set; } } public class Class2 { public int IntValue { get; set; } public string StringValue { get; set; } }
是否有可能创建一个方法,将任何object
作为参数并返回object
我传入的位置,Class1
并返回Class2
或反之亦然,而不知道将传入哪个类?我们可以假设这两个类将共享完全相同的属性.我们需要定义在Type
调用方法时返回的内容.
在编译时不知道类型的唯一方法是使用反射:
获取每种类型的所有属性的列表
按名称查找匹配的属性
对于每个属性:
从对象1获取值
设置对象2的值(必要时进行转换)
像AutoMapper这样的工具开箱即用,但在从一种类型映射到另一种类型时几乎总是需要某种自定义配置.
如果您有两种类型具有完全相同的属性和类型,那么您可能需要公共属性的基类型?