自动映射:访问自定义转换器中的成员信息

时间:2017-02-10 10:47:36

标签: c# .net asp.net-core automapper

我编写了自定义转换器以在类之间进行映射,但是虽然所有属性的类型都相同,但我的某些属性需要特殊处理。

所以我想访问属性的名称,当前映射的内容。在ResolutionContext中曾经有一个属性“memberName”,但它不再在这里了。 我还可以装饰每个属性或传递有关Map函数本身中每个属性的信息。

在这种情况下推荐的方式是什么?

public class IntToTermsetConverter : ITypeConverter<List<GenericHistory<Term>>, List<GenericHistory<int?>>>
{
    ITermsetService termsetService;
    public IntToTermsetConverter()
    {
        this.termsetService = new TermsetService(new TermsetRepository(new UnitOfWork()));
    }
    public List<GenericHistory<int?>> Convert(List<GenericHistory<Term>> genHis, List<GenericHistory<int?>> genTarget, ResolutionContext context)
    {
//Need some information about the currently mapped attribute - for example the name or something else I could pass
        if (genHis != null)
            return termsetService.FromTermToIndex(genHis, (string)context.Options.Items["termsetName"]);
        else
            return null;
    }
}

0 个答案:

没有答案