У меня есть два класса:
public class Parametro
{
public int Id { get; set; }
public string Nombre { get; set; }
public int TipoDatoId { get; set; }
public TipoDato TipoDato { get; set; }
}
public class ParametroCreateViewModel
{
public string Nombre { get; set; }
public int TipoDatoId { get; set; }
}
когда я это установил таким образом _mapper.Map (модель); Я получаю следующую ошибку:
Найдены не нанесенные на карту участники. Просмотрите типы и членов ниже. Добавьте пользовательское выражение сопоставления, игнорируйте, добавьте пользовательский преобразователь или измените тип источника / назначения. Если нет подходящего конструктора, добавьте c-аргумент без аргументов, добавьте необязательные аргументы или сопоставьте все параметры конструктора.
ParametroCreateViewModel-> Parametro (список членов назначения)
но когда я пытаюсь это так, если это работает:
Mapper.Map (модель);
Мой автофак выглядит следующим образом:
builder.RegisterAssemblyTypes().AssignableTo(typeof(Profile));
builder.Register(c => new MapperConfiguration(cfg =>
{
foreach (var profile in c.Resolve<IEnumerable<Profile>>())
{
cfg.AddProfile(profile);
}
})).AsSelf().SingleInstance();
builder.Register(c => c.Resolve<MapperConfiguration>().CreateMapper(c.Resolve)).As<IMapper>().InstancePerLifetimeScope();
и мой automapperconfig:
public class AutoMapperConfig : Profile
{
public static void Initialize()
{
Mapper.Initialize((config) =>
{
config.CreateMap<ParametroCreateViewModel, Parametro>()
.ForMember(dest => dest.Id, opt => opt.Ignore()).ReverseMap();
}
}
}
и объявите мой global.asax:
AutofacConfig.Register();
AutoMapperConfig.Initialize();
GlobalConfiguration.Configure(WebApiConfig.Register);