我们有一个自定义对象扩展方法可以处理以下内容。
- 源是
DataRow
目标是class
。 - 源是
DataTable
目标是一个List<class>
- 源是
class
目标是class
- 源是
List<class>
目标是List<class>
我找到了 ValueInjecter 和 DataTable ,所以我可以处理 DataRow 和 DataTable。
所以我到了将它们粘合在一起的步骤。
这是我尝试过的。
public static class ObjectExtensions
{
public static void OldFill(this object fillMe, object sourceObject)
{
Type sourceType = sourceObject.GetType();
Type fillType = fillMe.GetType();
switch (sourceType.Name)
{
case "DataRow":
fillMe.InjectFrom<DataRowInjection>(sourceObject);
break;
case "DataTable":
fillMe.InjectFrom<DataTableInjection<fillType>>(sourceObject);
break;
default:
fillMe.InjectFrom(sourceObject);
break;
}
}
}
不知道如何获得fillType
使代码正常工作的权利。
因为这是遗留代码,我不想更改扩展签名。