Using AutoMapper to map the property of an object to a string

.net, automapper, automapper-2, c#, mapping

Solution

This is because you are trying to map to the actual destination type rather than a property of the destination type. You can achieve what you want with:

Mapper.CreateMap<Tag, string>().ConvertUsing(source => source.Name ?? string.Empty);

although it would be a lot simpler just to override ToString on the Tag class.

Problem

I have the following model: ``` public class Tag { public int Id { get; set; } public string Name { get; set; } } ``` I want to be able to use AutoMapper to map the `Name` property of the `Tag` type to a string property in one of my viewmodels. I have created a custom resolver to try to handle this mapping, using the following code: ``` public class TagToStringResolver : ValueResolver<Tag, string> { protected override string ResolveCore(Tag source) { return source.Name ?? string.Empty; } } ``` I am mapping using the following code: ``` Mapper.CreateMap<Tag, String>() .ForMember(d => d, o => o.ResolveUsing<TagToStringResolver>()); ``` When I run the application I get the error: Custom configuration for members is only supported for top-level individual members on a type. What am I doing wrong?

Original source