[Mapster Tool] Add support for global:: to disambiguate type names in generated mappers
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 65/100
Direzione di ricerca
Inizia dal supporto esistente dello strumento Mapster per la generazione di nomi completamente qualificati e segui il modo in cui vengono emessi i nomi dei tipi generati. Aggiungi un'opzione per il qualificatore global::, quindi verifica che i mapper generati vengano compilati quando i namespace dei modelli entrano in conflitto con il namespace del mapper.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In some cases it could be useful to generate sources where type names are fully qualified with global:: prefix.
If the mapper class is generated in a namespace that partially collides with the one where models are defined, compilation fails.
An example:
namespace Company.Models
{
public class MyModel
{
}
}
namespace ThirdParty.Models
{
public class OtherModel
{
}
}
namespace Prefix.Company.Mappers
{
using ThirdParty.Models;
using Company.Models;
public partial class Mapper
{
MyModel Map(OtherModel model);
}
}
In this case the compiler will trigger a CS0234
The type or namespace 'Models' does not exist in the namespace 'Prefix.Company' (are you missing an assembly reference?)
due to the standard namespace resolution strategy of the compiler.
Even qualifying the name like this
namespace Prefix.Company.Mappers
{
using ThirdParty.Models;
public partial class Mapper
{
Company.Models.MyModel Map(OtherModel model);
}
}
does not fix the error, and the only proper fix is to use the global:: qualifier
namespace Prefix.Company.Mappers
{
using ThirdParty.Models;
// The following is equivalent to inline global qualificatio
// using global::Company.Models;
public partial class Mapper
{
global::Company.Models.MyModel Map(OtherModel model);
}
}
The Mapster tool allows to generate mappers with a fully qualified name, but it does not prefix types with global:: (neither provides an option to do so).
It would be nice if such feature was added.
I am willing to provide a PR eventually.
- Lingua principale
- C#
- Stelle
- 5.2k
- Fork
- 409
- Merge medio
- 3g 4h
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di MapsterMapper/Mapster
-
.NET MatrixAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
MapsterMapper/Mapster#1003 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 58/100
MapsterMapper/Mapster#1024 · 1 commento ·
-
Mapster.Tool - PropertySettingBuilder.Map(member, mapFunc, targetPropertyName) method is not working as expected!Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
MapsterMapper/Mapster#1017 · 6 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 57/100
MapsterMapper/Mapster#1007 · 5 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
MapsterMapper/Mapster#1005 ·
Tutte le issue di MapsterMapper/Mapster
Issue simili
-
Format request: .wbpzApertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
KnifeLemon/Filee#294 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
gavin-wolfe/wolfden#104 ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] Still libmicrohttpd dependency is not removed properly from External-Dependency-Info.txt fileForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertatype/bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
area:framework
Difficoltà 1/5 1-3 ore Idoneità per principianti 72/100
nunit/docs#1262 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[辞書] かんそうりつ->乾燥率Aperta辞書
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno