Как указать конкретный преобразователь типа для данного свойства с помощью AutoMapper

Как я могу переопределить преобразователь типов, используемый AutoMapper для данного свойства?

Например, если у меня есть:

public class Foo
{
    public string Name { get; set; }
}

public class Bar
{
    public string Name { get; set; }
}

Теперь я просто хочу сопоставить Foo.Name с Bar.Name но с использованием преобразователя указанного типа. Я вижу, как я могу это сделать, используя:

Mapper
    .CreateMap<Foo,Bar>()
    .ForMember( x => x.Name, opt => opt.ResolveUsing<FooNameResolver>() );

Но это жестко кодирует преобразование для использования свойства Name в Foo. Если у меня есть такой же тип преобразования для других свойств в этом или других классах, мне нужно создать класс преобразователя для каждого.

И я не хочу указывать преобразователь для строки -> строки, поскольку это преобразование является специфическим на это свойство или другие подобные.

Я просто хочу переопределить преобразователь типов! Я уверен, что это возможно, но я ничего не понимаю: - (

Мне нужно что-то вроде этого:

Mapper
    .CreateMap<Foo,Bar>()
    .ForMember( x => x.Name, opt => opt.Using<MySpecialStringConverter>() );
6
задан Mike Scott 14 October 2010 в 13:12
поделиться