可以使用Automapper将类实例绑定到Winforms,如果是,如何?

时间:2012-01-15 18:46:52

标签: c# winforms automapper

我有许多数据传输对象(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之类的代码来编码它会更好吗? 如果可以,请提供代码示例; 我不需要整本圣经,只需要几节经文就可以指明正确的方向。

1 个答案:

答案 0 :(得分:2)

使用automapper是不可能的,但你可以在Demo中看到这里(http://valueinjecter.codeplex.com)使用映射的winforms项目,你也可以在首页看到演示的截图。