是否可以使用AutoMapper使用私有(private) setter 分配属性?

最佳答案

如果您像这样在构造函数中设置此属性的值,

public class RestrictedName
{
    public RestrictedName(string name)
    {
        Name = name;
    }

    public string Name { get; private set; }
}

public class OpenName
{
    public string Name { get; set; }
}

那么你可以像这样使用ConstructUsing
Mapper.CreateMap<OpenName, RestrictedName>()
            .ConstructUsing(s => new RestrictedName(s.Name));

与此代码一起使用
var openName = new OpenName {Name = "a"};
var restrictedName = Mapper.Map<OpenName, RestrictedName>(openName);
Assert.AreEqual(openName.Name, restrictedName.Name);

关于automapper - 具有专用设置程序的AutoMapper映射属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8355024/

10-13 02:11