У меня есть два одинаковых классов в разных пространствах имен:Карта с поля только для чтения Automapper
namespace ClassLibrary1
class Class1
{
public readonly int field1;
public Class1(int value) { field1 = value; }
}
И такое же определение класса в пространстве имен ClassLibrary2
.
Когда я пытаюсь использовать AutoMapper, я получаю это исключение:
Выражение должно быть записываемые Имя параметра: слева
Это код AutoMapper:
Mapper.CreateMap<ClassLibrary1.Class1, ClassLibrary2.Class1>();
var result = Mapper.Map<ClassLibrary2.Class1>(class1);
Но если я попробую это AutoMapper Exclude Fields, это не сработает, используя это:
Mapper.CreateMap<ClassLibrary1.Class1, ClassLibrary2.Class1>()
.ForMember(a => a.field1, a => a.Ignore());
Наверняка это работает, чтобы изменить его на свойство с открытым доступом и частным набором (например, в Automapper ignore readonly properties), но я хочу, чтобы будущий разработчик не устанавливал значение после конструктора.
Есть ли способ решить это с помощью AutoMapper?
Вы можете использовать пользовательские отображения: http://stackoverflow.com/questions/8046442/ отображение-чтения-ребенок-коллекция-с-automapper – mostruash