我编写了自定义转换器以在类之间进行映射,但是虽然所有属性的类型都相同,但我的某些属性需要特殊处理。
所以我想访问属性的名称,当前映射的内容。在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;
}
}