Can't use conditional mapping with different types of source field
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza reproduciendo la excepción con las clases Source y Destination y el mapeo TypeAdapterConfig.GlobalSettings mostrado en el issue. Rastrea cómo se compilan las dos llamadas condicionales a Map cuando sus expresiones de origen tienen tipos diferentes. Se considera terminado cuando el mapeo condicional admite el caso de entero nullable a string sin requerir AfterMapping, con cobertura para la configuración reportada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
For example there are 2 classes:
public class Source
{
public int? IntValue { get; set; }
public string StringValue { get; set; } = "Some Value";
}
public class Destination
{
public string Mapped { get; set; } = string.Empty;
}
The task is put in Mapped string representation of IntValue if it's not null, otherwise use StringValue. I assume configuration should look like (according to Mapster docs):
TypeAdapterConfig.GlobalSettings
.NewConfig<Source, Destination>()
.Map(dest => dest.Mapped, src => src.IntValue, src => src.IntValue.HasValue)
.Map(dest => dest.Mapped, src => src.StringValue);
But it gives runtime exception:
Mapster.CompileException: Error while compiling
source=Source
destination=Destination
type=Map
---> System.InvalidOperationException: No coercion operator is defined between types 'System.Nullable`1[System.Int32]' and 'System.String'.
Is it intended behavior or it's a bug? How to perform conditional mapping in given case Mapster way, without slapping .AfterMapping() and do it with custom code?
- Lenguaje dominante
- C#
- Estrellas
- 5.2k
- Forks
- 409
- Merge medio
- 3 d 4 h
- PR fusionados (30 d)
- 3
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 @DocSvartz la tomó hace 2 días. Abiertoimprovement
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
MapsterMapper/Mapster#1020 · 3 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
-
/api/oauth/introspect emits clientId and tokenType instead of RFC 7662's client_id and token_typeAbiertobug P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
nightscout/nocturne#2317 ·
Los mantenedores suelen responder en 1 día
-
[BUG]: Position intent set on a simple order is dropped when it becomes a bracket, OCO or OTO orderPosiblemente ocupada @RaphaelFakhri la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
alpacahq/alpaca-trade-api-csharp#903 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
joinrpg/joinrpg-net#5752 ·
Los mantenedores suelen responder en 1 día
-
bug ux
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
CodeForFire/lagebuch#714 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
dimitar-radenkov/Pointframe#294 ·
Los mantenedores suelen responder en 1 día