我有一个界面
internal interface IAttributeModel
{
string Name { get; set; }
int Id { get; set; }
string AttType { get; set; }
}
实现接口的类
public class Currency:IAttributeModel
{
private string _type;
public Currency()
{
_type = "Currency";
}
public string Name { get; set; }
public int Id { get; set; }
string IAttributeModel.AttType
{
get { return _type; }
set { _type = value; }
}
}
上面的类明确地实现了一个属性。
我的实体确实如下所示。
public class ProviderAttribute
{
public int Id { get; set; }
public string Name { get; set; }
public string AttType { get; set; }
}
我创建了一个简单的映射
Mapper.CreateMap<Entities.ProviderAttribute, Models.Currency>();
Mapper.CreateMap<Models.Currency, Entities.ProviderAttribute>();
以上映射始终在映射时将Currency对象的AttType属性设置为null。我可能正在发生这种情况,因为Currency显式实现了IAttributeModel接口,我的映射无法找到它。
如何强制执行映射以查看IAttributeModel接口。
感谢。
答案 0 :(得分:0)
您必须将Currency对象强制转换为接口类型IAttributeModel:
Mapper.Map((IAttributeModel)currency, providerAttribute);
你必须让AutoMapper知道如何映射界面:
Mapper.CreateMap<ProviderAttribute, Currency>();
Mapper.CreateMap<Currency, ProviderAttribute>();
Mapper.CreateMap<ProviderAttribute, IAttributeModel>();
Mapper.CreateMap<IAttributeModel, ProviderAttribute>();