繁体   English   中英

是否可以使用AutoMapper填充基类的属性?

[英]Is it possible to use AutoMapper to populate properties of a base class?

请看以下示例:

public class Parent
{
    public string Id {get; set;}

    public Parent(string id)
    {
        Id = id;
    }
}

public class Child : Parent
{
    public string Name {get; set;}

    public Child(string id, string name) : base(id) // <-- call base constructor
    {
        Name = name;
    }
}

这是有关如何在基类中设置属性的经典示例。

现在说我的基类包含50个属性。 我知道可以逐行设置每个属性,但是我想知道是否可以使用AutoMapper填充属性?

我想在基类中做这样的事情:

public class MyClass
{
    public MyClassMapData(MY_DATA data)
            {
                // DOC_TRACK_MAIN
                var config = new MapperConfiguration(c =>
                {
                    c.CreateMap<MY_DATA , MyClass>();
                });

                // This will map the first 45 properties.
                var mappedData = config.CreateMapper().Map<MY_DATA , MyClass>(data.MyData);

                // DOC_TRACK_DETAILS
                mappedData.PROP_46 = data.Field1;
                mappedData.PROP_47 = data.Field2;
                mappedData.PROP_48 = data.Field3;
                mappedData.PROP_49 = data.Field4;
                mappedData.PROP_50 = data.Field5;            

            // How would I set mappedData to my current instance?    
            }

     // My 50 properties...
}

如果我理解正确,那么您正在将MapdData映射到当前类。 如果您更改行var mappedData = config.CreateMapper().Map<MY_DATA , MyClass>(data.MyData); config.CreateMapper().Map<MY_DATA , MyClass>(data.MyData, this); 这应该将数据映射到您的班级。 然后,您可以在课程上手动设置PROP_46-PROP_50

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM