我正在使用AutoMapper在实体和接口之间进行映射
首先我创建了我的映射并检查它是否有效。
AutoMapper.Mapper.CreateMap<User, IUserViewModel>();
AutoMapper.Mapper.AssertConfigurationIsValid();
然后我创建了一个使用此映射的方法:
public IUserViewModel GetUser(int id)
{
var user= _userRepository.GetByKey(id);
var currentUser = Mapper.Map<User, IUserViewModel>(user);
return currentUser;
}
我在我的代码的另一个地方使用此方法
IUserViewModel myUser = XXXXX.GetUser(3);
此问题是 myUser 始终为空。
但是,当我调试我的方法并在返回之前在其中停止juste时,我可以看到我的对象 currentSupplier 已创建并正确填充。
但是当方法返回时,我得到一个空值。
我想这与我的对象 currentSupplier 创建的事实有关 代理&LT; ....&GT;
任何帮助?
谢谢。
答案 0 :(得分:0)
添加我的代码的完整副本,证明上述内容对我有用 - 无法将其纳入评论。
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; }
}
您是否可以添加一些其他内容来显示失败的位置?