AutoMapper NamingConvention - 为什么这不起作用?

时间:2014-07-10 21:03:37

标签: c# automapper

Automapper的新功能 - 感到困惑,为什么这不起作用......谢谢!!!!

public class Dog
{
    public string Bark { get; set; }
}

public class Pig
{
    public string bark { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        Mapper.Initialize(cfg =>
        {
            cfg.DestinationMemberNamingConvention = new PascalCaseNamingConvention();
            cfg.SourceMemberNamingConvention = new LowerUnderscoreNamingConvention();
        });
        var map = Mapper.Map<Pig, Dog>(new Pig());
    }
}

1 个答案:

答案 0 :(得分:3)

您应该使用DynamicMap:

namespace ConsoleApplication5
{
    #region

    using AutoMapper;

    #endregion

    internal class Program
    {
        #region Methods

        private static void Main(string[] args)
        {
            Mapper.Initialize(
                cfg =>
                {
                    cfg.DestinationMemberNamingConvention = new PascalCaseNamingConvention();
                    cfg.SourceMemberNamingConvention = new LowerUnderscoreNamingConvention();
                });
            var dog = Mapper.DynamicMap<Pig, Dog>(
                new Pig
                {
                    bark = "Bark!"
                });
        }

        #endregion
    }

    public class Dog
    {
        #region Public Properties

        public string Bark { get; set; }

        #endregion
    }

    public class Pig
    {
        #region Public Properties

        public string bark { get; set; }

        #endregion
    }
}

首先配置AutoMapper:

        Mapper.CreateMap<Pig, Dog>();

        var dog = Mapper.Map<Dog>(
            new Pig
            {
                bark = "Bark!"
            });

就是这样。