【问题标题】:Automapper custom resolversAutomapper 自定义解析器
【发布时间】:2014-03-27 23:05:17
【问题描述】:

对于我的简单问题,我很抱歉,但我无法让它发挥作用。 我的问题: 我想从域对象映射到模型对象但是, 在域对象中,我有一个列表,所以我的对象看起来像:

public class Conference
 {
   public virtual  int Id{get;set;}
   public virtual int  NumberOfTables{get;set;}
   public virtual IList<People> Peoples{get;set;}
 }

public class People
 {
   public virtual  int Id{get;set;}
   public virtual string FirstName{get;set;}
   public virtual string LastName{get;set;}
   public virtual  Conference Conference{get;set;}
 }

My model :


public class Model
{
  public int Id{get;set;}
  public int NumberOfTables{get;set;}
  public string Peoples{get;set;}
}

我希望列表中的所有人都像:"FirstName"+"LastName"+"," 现在在从域对象到模型的映射中,我有这样的东西:

Mapper.CreateMap<Conference,Model>()
     .ForMember(c => c.Id, op => op.MapFrom(v => v.Id))
     .ForMember(c => c.NumberOfTables, op => op.MapFrom(v => v.NumberOfTables))
      .ForMember(c => c.Peoples, op => op//here I want to use ResolveUsing or something like this  )



  public class CustomConvert: ValueResolver<IList<GroupOfComponentInComplexToMeal>, string>
    {
        protected override string ResolveCore(IList<People> source)
        {
            string result = "";
            if (source.Any())
            {
                for (int i = 0; i < source.Count; i++)
                {
                    var name=source[i].FirstName+source[i].LastName;
                    result += name;
                    if (i < source.Count - 1)
                    {
                        result += ",";
                    }
                }
            }
            return result;
        }
    }

我做了这个 CustomConvert,但我无法将它与我的映射器合并。

如果我需要使用自定义转换器,我现在真的不需要,但我想了解它们是如何工作的。 任何帮助将不胜感激。

【问题讨论】:

    标签: c# mapping automapper


    【解决方案1】:

    让它工作起来真的很简单,但我仍然需要一些很好的例子来了解更多关于自定义解析器的信息。

    解决方案:

    Mapper.CreateMap<Conference,Model>()
        .ForMember(c => c.Id, op => op.MapFrom(v => v.Id))
        .ForMember(c => c.NumberOfTables, op => op.MapFrom(v => v.NumberOfTables))
        .ForMember(c => 
            c.Peoples, op => op.ResolveUsing<CustomConvert>().FromMember(x => x.Peoples)
        );
    

    【讨论】:

      猜你喜欢
      • 2014-04-10
      • 2019-11-21
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      • 2014-08-05
      相关资源
      最近更新 更多