Interface 自动映射:映射到接口
我正在使用AutoMapper在实体和接口之间进行映射 首先,我创建了映射并检查它是否有效Interface 自动映射:映射到接口,interface,automapper,Interface,Automapper,我正在使用AutoMapper在实体和接口之间进行映射 首先,我创建了映射并检查它是否有效 AutoMapper.Mapper.CreateMap<User, IUserViewModel>(); AutoMapper.Mapper.AssertConfigurationIsValid(); 此问题是“这是我的用户”始终为空。 然而,当我调试我的方法并在返回之前停止在其中时,我可以看到我的对象currentSupplier被正确创建和填充 但是当方法返回时,我得到一个空值 我想这与
AutoMapper.Mapper.CreateMap<User, IUserViewModel>();
AutoMapper.Mapper.AssertConfigurationIsValid();
此问题是“这是我的用户”始终为空。
然而,当我调试我的方法并在返回之前停止在其中时,我可以看到我的对象currentSupplier被正确创建和填充
但是当方法返回时,我得到一个空值
我想这与我的对象currentSupplier被创建为
代理
有什么帮助吗
谢谢。添加我的代码的完整副本,以证明上述内容对我有效-无法将其放入注释中
class Program
{
static void Main(string[] args)
{
Program program = new Program();
IUserViewModel myUser = program.GetUser(3);
Console.WriteLine(myUser.Name); // Prints Frank
Console.Read();
}
public Program()
{
Mapper.CreateMap<User, IUserViewModel>();
Mapper.AssertConfigurationIsValid();
}
private UserRepo _userRepository = new UserRepo();
public IUserViewModel GetUser(int id)
{
var user = _userRepository.GetByKey(id);
var currentUser = Mapper.Map<User, IUserViewModel>(user);
return currentUser;
}
}
public class UserRepo
{
public User GetByKey(int id)
{
return new User { Name = "Frank" };
}
}
public interface IUserViewModel
{
string Name { get; set; }
}
public class User
{
public string Name { get; set; }
}
类程序
{
静态void Main(字符串[]参数)
{
程序=新程序();
IUserViewModel myUser=program.GetUser(3);
Console.WriteLine(myUser.Name);//打印Frank
Console.Read();
}
公共计划()
{
CreateMap();
assertConfigurationsValid();
}
private UserRepo_userRepository=new UserRepo();
公共IUserViewModel GetUser(内部id)
{
var user=\u userRepository.GetByKey(id);
var currentUser=Mapper.Map(用户);
返回当前用户;
}
}
公共类UserRepo
{
公共用户GetByKey(int id)
{
返回新用户{Name=“Frank”};
}
}
公共接口IUserViewModel
{
字符串名称{get;set;}
}
公共类用户
{
公共字符串名称{get;set;}
}
您是否可以添加一些额外的内容来显示失败的地方 您好,我已经复制了您的代码,因为您有它,它的作品很好,为我。
IUserViewModel myUser = XXXXX.GetUser(3);
class Program
{
static void Main(string[] args)
{
Program program = new Program();
IUserViewModel myUser = program.GetUser(3);
Console.WriteLine(myUser.Name); // Prints Frank
Console.Read();
}
public Program()
{
Mapper.CreateMap<User, IUserViewModel>();
Mapper.AssertConfigurationIsValid();
}
private UserRepo _userRepository = new UserRepo();
public IUserViewModel GetUser(int id)
{
var user = _userRepository.GetByKey(id);
var currentUser = Mapper.Map<User, IUserViewModel>(user);
return currentUser;
}
}
public class UserRepo
{
public User GetByKey(int id)
{
return new User { Name = "Frank" };
}
}
public interface IUserViewModel
{
string Name { get; set; }
}
public class User
{
public string Name { get; set; }
}