使用自动映射器将枚举映射到枚举

时间:2018-07-10 13:50:32

标签: c# enums automapper-5

我有两个枚举:一个是仅后端的,第二个是版本控制的,并向API使用者公开。

后端版本:

class Category < ActiveRecord
  attr_accessor :name
  has_many :posts
end

API公开版本

   public enum SomeEnum  
   {
          One,
          Two,
          Three
   }

我正在使用Automapper 5.2.0这样将后端枚举映射到api枚举:

   public enum SomeEnum 
   {
          One,
          Two
   }

我需要忽略SomeEnum。现在是三个。所以我将代码更改为:

     CreateMap<SomeEnum, CommonEnums.SomeEnum>()

现在我有错误:

  

AutoMapper.AutoMapperConfigurationException:自定义配置   类型只支持顶级个人成员。

为什么?我该如何解决?

1 个答案:

答案 0 :(得分:0)

尝试一下:

CreateMap<SomeEnum, CommonEnums.SomeEnum>()
    .ForMember(dest=> dest.Three, opt => opt.Ignore());

,如果您使用的是WCF,则为双方的枚举字段分配编号:

public enum SomeEnum 
{ 
    One = 1, 
    Two = 2, 
    Three = 3 
} 

public enum SomeEnum 
{
    One = 1,
    Two = 2
}