是否可以使用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/