C# Automapper以及泛型和映射缺少的属性

C# Automapper以及泛型和映射缺少的属性,c#,automapper,C#,Automapper,我正在尝试使用通用映射器映射两个对象。因此,我以这种方式设置Automapper,它来自文档: var config = new MapperConfiguration(cfg => { cfg.CreateMap(typeof(Source<>), typeof(Destination<>)); }); mapper = config.CreateMapper(); var

我正在尝试使用通用映射器映射两个对象。因此,我以这种方式设置Automapper,它来自文档:

        var config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap(typeof(Source<>), typeof(Destination<>));
        });
        mapper = config.CreateMapper();
var config=new-MapperConfiguration(cfg=>
{
CreateMap(typeof(源),typeof(目的));
});
mapper=config.CreateMapper();
现在,如果源和目标具有相同的属性,并且从源端的更多属性到目标端的更少属性,那么一切都可以正常工作。但是,如果源的属性少于目标,则会出现错误:

值-->AutoMapper.AutoMapperConfigurationException: 找到了未映射的成员。查看下面的类型和成员

我的问题是,有没有一种方法可以忽略这些属性,即使我在编译时不知道它们是什么

资料来源:

 public class Source<T>
{
    public T Value { get; set; }
}

 public class Destination<T>
{
    public T Value { get; set; }
}


public class DataObject1
{
    public int Id { get; set; }
    public string Code { get; set; }
}

public class DataObject2
{
    public int Id { get; set; }
    public string Code { get; set; }
    public string ActiveFlag { get; set; }
}
公共类源代码
{
公共T值{get;set;}
}
公务舱目的地
{
公共T值{get;set;}
}
公共类DataObject1
{
公共int Id{get;set;}
公共字符串代码{get;set;}
}
公共类DataObject2
{
公共int Id{get;set;}
公共字符串代码{get;set;}
公共字符串ActiveFlag{get;set;}
}
以下是我的测试代码:

        var data = new DataObject1() { Id = 10, Code = "Test" };

        var source = new Source<DataObject1> { Value = data };
        var dest = mapper.Map<Source<DataObject1>, Destination<DataObject2>>(source);

        Assert.AreEqual(dest.Value.Id, 10);
var data=newdataobject1(){Id=10,code=“Test”};
变量源=新源{Value=data};
var dest=mapper.Map(源);
Assert.AreEqual(dest.Value.Id,10);

如果将
DataObject1
映射到
DataObject2
,则映射将成功,如下所示:

var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap(typeof(Source<>), typeof(Destination<>));
    cfg.CreateMap<DataObject1, DataObject2>();
});
var config=new-MapperConfiguration(cfg=>
{
CreateMap(typeof(源),typeof(目的));
CreateMap();
});

。。。或者您是在试图避免在编译时知道可能需要将
DataObject1
映射到
DataObject2
吗?

正如AssertConfigurationsValid告诉您的那样,该属性仍然未映射。