AutoMapper сопоставление со свойством свойства, допускающего значение NULL

Как можно сопоставить свойство с вложенным свойством, которое может иметь значение NULL?

например, следующий код завершится ошибкой с исключением NullReferenceException, потому что контакт ' s Свойство User имеет значение null.

using AutoMapper;

namespace AutoMapperTests
{
    class Program
    {
        static void Main( string[] args )
        {
            Mapper.CreateMap<Contact, ContactModel>()
                .ForMember( x => x.UserName,  opt => opt.MapFrom( y => y.User.UserName ) );

            Mapper.AssertConfigurationIsValid();

            var c = new Contact();

            var co = new ContactModel();

            Mapper.Map( c, co );
        }
    }

    public class User
    {
        public string UserName { get; set; }
    }

    public class Contact
    {
        public User User { get; set; }
    }

    public class ContactModel
    {
        public string UserName { get; set; }
    }
}

Я бы хотел, чтобы UserName ContactModel вместо этого по умолчанию использовал пустую строку.

Я пробовал использовать метод NullSubstitute, но предполагаю, что он пытается работать с User.Username, а не только со свойством User.

10
задан David Gardiner 4 November 2010 в 00:28
поделиться