gpt4 book ai didi

interface - 自动映射器 : Mapping to an Interface

转载 作者:行者123 更新时间:2023-12-02 11:26:49 24 4
gpt4 key购买 nike

我正在使用 AutoMapper 在实体和接口(interface)之间进行映射

首先,我创建了映射并检查它是否有效。

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始终为空。

但是,当我调试我的方法并在返回之前停止在其中时,我可以看到我的对象 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; }
}

您能否添加一些额外的内容来显示失败的地方?

关于interface - 自动映射器 : Mapping to an Interface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7951530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com