Voici mon convertisseur de type personnalisé.Automapper Type Converter de String à IEnumerable <String> n'est pas appelé
public class StringListTypeConverter : TypeConverter<String, IEnumerable<String>>
{
protected override IEnumerable<string> ConvertCore(String source)
{
if (source == null)
yield break;
foreach (var item in source.Split(','))
yield return item.Trim();
}
}
public class Source
{
public String Some {get;set;}
}
public class Dest
{
public IEnumerable<String> Some {get;set;}
}
// ... configuration
Mapper.CreateMap<String, IEnumerable<String>>().ConvertUsing<StringListTypeConverter>();
Mapper.CreateMap<Source, Dest>();
Le problème:StringListTypeConverter
n'est pas appelé du tout.Dest.Some == null
.
Mise à jour: la version Automapper 1.0.0.155
Cela semble fonctionner très bien avec le code que vous avez fourni. Si je fais Mapper.Map (nouvelle source {Some = "Foo, Bar, Baz"}); alors la valeur de destination a une propriété Some avec une séquence de Foo, Bar, Baz. Ceci est sur la version 1.1.0.181. –
Merci pour cette information. Je viens de découvrir que mon code utilise la version 1.0.0.155. Laissez-moi essayer la dernière version. –
@Jimmy, BTW, où l'obtenir? Impossible de le trouver ni sur codeplex ni sur google. –