Interface 自动映射:映射到接口

Interface 自动映射:映射到接口,interface,automapper,Interface,Automapper,我正在使用AutoMapper在实体和接口之间进行映射 首先,我创建了映射并检查它是否有效 AutoMapper.Mapper.CreateMap<User, IUserViewModel>(); AutoMapper.Mapper.AssertConfigurationIsValid(); 此问题是“这是我的用户”始终为空。 然而,当我调试我的方法并在返回之前停止在其中时,我可以看到我的对象currentSupplier被正确创建和填充 但是当方法返回时,我得到一个空值 我想这与

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

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

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; }
}