我有许多数据传输对象(DTO),它们映射到二进制文件中的数据结构。这些对象中的一些字段映射到枚举,如下所示:
public enum DataChecksumExistence
{
None = 0x00,
Eight_Bits = 0x01,
Sixteen_Bits = 0x02,
Thirty_Two_Bits = 0x03
}
其他字段只是数字或布尔位值。
我在ToList()
上有一个扩展方法Enum
,它会返回任意枚举中的键值对列表,这些值可以填入Form_Load
的下拉列表中:
uxDataChecksumExistence.DataSource = typeof(DataChecksumExistence).ToList();
在Winform的公共属性中返回我的DTO实例,我在getter中有以下内容:
dto.DataChecksumExistence
= (DataChecksumExistence)uxDataChecksumExistence.SelectedValue
以及setter中的以下内容:
uxDataChecksumExistence.SelectedValue = dto.ChecksumSize;
将此代码乘以约50个字段,然后再将其乘以我在我的应用程序中需要的表单数量(这是几十个),您可以看到我的困境。
有没有办法使用Automapper执行此操作?或者用T4 templates之类的代码来编码它会更好吗? 如果可以,请提供代码示例; 我不需要整本圣经,只需要几节经文就可以指明正确的方向。
答案 0 :(得分:2)
使用automapper是不可能的,但你可以在Demo中看到这里(http://valueinjecter.codeplex.com)使用映射的winforms项目,你也可以在首页看到演示的截图。