【发布时间】:2015-11-06 22:49:44
【问题描述】:
我有两个对象(域和数据)在这种情况下具有相同的属性(假设名称)。我有一个Action<DomItem>,我想将其转换为Action<DataItem>。
public class DomItem {
public string Name { get; set; }
}
public class DataItem {
public string Name { get; set; }
}
public class Program {
public Program() {
Action<DomItem> domAction = new Action<DomItem>(x=>x.Name = "Test");
// Something Casted To Action<DataItem>(x=>x.Name = "Test");
}
}
当然,这只是一个基本示例。设计使我不能使用通用界面。我不在乎DataItem 可能没有相同的属性。
我一直在研究表达式和其他几个解决方案,但我就是不知道如何创建 Cast(或从方法中获取“x=>x.Name =...”部分)。
任何帮助将不胜感激!
【问题讨论】:
-
为什么不直接使用 AutoMapper?
-
请解释一下oleksii.
-
克里斯蒂安,这只是一个例子。我希望 DataItem 对自己运行我在 DomItem 上定义的操作。
-
回应 Oleksii:我有基于我的 DomItem 定义的操作。我需要将它们转换为基于 DataItem 的操作。这不是我想使用 Before 或 After Mapping。我真的需要施放行动。
-
@MightyMouseTheSecond 看看this 的回答。应该是你需要的东西。
标签: c# reflection casting delegates