我正在尝试使用ReadOnlyCollection使对象不可变,我希望对象的属性是不可变的.
public ReadOnlyCollection<FooObject> MyReadOnlyList
{
get
{
return new ReadOnlyCollection<FooObject>(_myDataList);
}
}
Run Code Online (Sandbox Code Playgroud)
但我有点困惑.
我试图使用foreach将对象的属性更改为MyReadOnlyList并且...我可以更改value属性,是否正确?我理解ReadOnlyCollection设置一个添加级别,使对象不可变.
我在尝试忽略目标属性时遇到问题
源码类:
public class ClassDto
{
public int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
目的地舱位:
public class ClassModel
{
public int Id { get; set; }
public IList<string> ListString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
例子:
public class Program
{
static void Main(string[] args)
{
var dto = new ClassDto { Id = 1 };
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<ClassDto, ClassModel>().
ForMember(i => i.ListString, opt => opt.DoNotUseDestinationValue());
});
config.AssertConfigurationIsValid();
var mapper = config.CreateMapper();
var model = mapper.Map<ClassDto, ClassModel>(dto); …
Run Code Online (Sandbox Code Playgroud)