用mutator自动化

时间:2015-07-06 18:16:06

标签: c# properties set automapper

对我来说似乎很简单,但没有按预期工作。来源类:

public class SourceTest
{
  private string _field1;
  public string Field1
  {
    get
    {
      return _field1;
    }
    set
    {
      _field1 = value;
    }
  }
}

目的地类:

public class DestTest
{
  private string _field1;
  public string Field1
  {
    get
    {
      return _field1;
    }
    set
    {
      _field1 = value.ToUpper();
    }
  }
}

关键是目标类正在格式化输入值。

测试代码:

  Mapper.Initialize(cfg =>
  {
    cfg.BindingFlags = BindingFlags.Public | BindingFlags.Instance  BindingFlags.NonPublic; 
  });

  SourceTest st = new SourceTest();
  st.Field1 = "John";

  DestTest dt = new DestTest();

  AutoMapper.Mapper.CreateMap<SourceTest, DestTest>();
  AutoMapper.Mapper.Map<SourceTest, DestTest>(st, dt);
  MessageBox.Show(dt.Field1);

目标对象的Field1不是大写的。调用set代码,因为我可以在其中放置一个断点。

这只是支持吗?我认为这是一个常见的要求 - 用户在一个对象中输入数据,但我们想在目标对象中处理它。它是mapper.initialize,包括非公共字段,这是问题。

提前致谢,

0 个答案:

没有答案