Mapping an object with getter only properties seems to be broken in v10.0.6 (works as expected in 7.4.0)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 50/100
Línea de trabajo
Comienza ejecutando la reproducción de C# proporcionada con Mapster v10.0.6 y compara el mapeo personalizado de Dto-to-Entity con v7.4.0. Traza el comportamiento del mapeo sobre una Entity existente cuando Data tiene un Value que solo expone getter, y confirma que está terminado cuando la Entity existente recibe el nuevo valor de Data, mientras los demás casos mostrados siguen pasando.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hello. I am trying to map an object with getter-only properties using a custom Map functon. This seems to be broken in v10.0.6, while it was fine in v7.4.0. See the following sample:
var typeAdapterConfig = new Mapster.TypeAdapterConfig();
typeAdapterConfig.Scan(typeof(Program).Assembly);
typeAdapterConfig.Compile();
var mapper = new MapsterMapper.Mapper(typeAdapterConfig);
var dto = new Dto { Data = new("new") };
Console.WriteLine(mapper.Map(dto, new Entity { Data = new("old") }).Data?.Value); // outputs "old" with v10.0.6, outputs "new" with v7.4.0
Console.WriteLine(mapper.Map(dto, new Entity()).Data?.Value); // outputs "new" with both v10.0.6 and v7.4.0
Console.WriteLine(mapper.Map<Entity>(dto).Data?.Value); // outputs "new" with both v10.0.6 and v7.4.0
class Dto { public Data? Data { get; set; } }
class Entity { public Data? Data { get; set; } }
class Data(string value) { public string Value => value; }
class Mappings : Mapster.IRegister
{
public void Register(Mapster.TypeAdapterConfig config)
{
config.NewConfig<Dto, Entity>()
.Map(x => x.Data, x => x.Data == null ? null : new Data(x.Data.Value));
}
}
Specifically this case seems to be broken:
var dto = new Dto { Data = new("new") };
var entity = mapper.Map(dto, new Entity { Data = new("old") });
I would expect the result entity's Data property to be mapped correctly from the source dto, as specified in the mapping function:
config.NewConfig<Dto, Entity>().Map(x => x.Data, x => x.Data == null ? null : new Data(x.Data.Value));
As noted, Mapster v7.4.0 seems to be find, but v10.0.* seems to be broken.
Or maybe I am missing something here, please advise, thank you.
- Lenguaje dominante
- C#
- Estrellas
- 5.2k
- Forks
- 411
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 4
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de MapsterMapper/Mapster
-
.NET MatrixAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
MapsterMapper/Mapster#1003 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
MapsterMapper/Mapster#1024 · 1 comentario ·
-
[Mapster Tool] Add support for global:: to disambiguate type names in generated mappersPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoimprovement
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
MapsterMapper/Mapster#1020 · 5 comentarios ·
-
Mapster.Tool - PropertySettingBuilder.Map(member, mapFunc, targetPropertyName) method is not working as expected!Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
MapsterMapper/Mapster#1017 · 6 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 57/100
MapsterMapper/Mapster#1007 · 5 comentarios ·
Todos los issues de MapsterMapper/Mapster
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
AvaloniaUI/Avalonia#22568 ·
Los mantenedores suelen responder en 2 días
-
[bug] 截图失败日志冲爆硬盘Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
babalae/better-genshin-impact#3846 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
lugassawan/swe-workbench#823 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
microsoft/fluentui-blazor#5518 ·
Los mantenedores suelen responder en 1 día
-
devtools
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día