-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conflito com a interface PagarmeApiSDK.Standard.IConfiguration #49
Comments
Você pode usar um Alias para algum dos namespaces, assim o conflito vai sumir. O IConfiguration da MS vem do namespace Microsoft.Extensions.Configuration, você pode fazer o seguinte. Coloque no inicio da sua classe o seguitne código:
Assin, você pode usar o Conf para acessar o appsettings.json e obter todos os dados que você precisar de lá. O outro IConfiguration do SDK PAGARME você pode deixar do jeito que está, ou inverter e usar o que eu te passei acima no namespace do SDK. Espero ter ajudado. |
Agradeço pela resposta e pela sugestão de usar um alias para contornar o conflito de nomes. No entanto, acredito que o problema é um design que pode ser melhorado. O uso de nomes que conflitam com tipos bem conhecidos da frameworks pode levar a erros e confusões. Em projetos maiores e equipes com vários desenvolvedores, esse workaround pode não ser ideal e pode resultar em um código mais difícil de entender e manter. Boas práticas de design prevê um bom Encapsulamento, resultando em um component menos intrusivo. Portanto, minha sugestão permanece: seria mais apropriado posicionar o E nesse caso a interface nem é essencial para o uso básico, uma boa opção seria torná-la "internal". Isso não só tornaria a SDK mais fácil de usar, mas também mais robusta e menos propensa a causar problemas em projetos que a integram. Acredito que a issue já atendeu seu objetivo que é sugerir uma mudança e os pontos já foram dados. Fique a vontade para fecha-la. |
de fato o seu ponto é totalmente válido. Também achei meio desnecessária a exposição do IConfiguration, mas vai saber como os caras desenharam a aplicação como um todo, as vezes sequer veio a mente que existia o IConfiguration da MS. Bom, veremos o que vão fazer a respeito. Sou apenas um mero contribuinte da comunidade que também sofreu com esse problema que você expos. |
Ao desenvolver uma classe que utiliza o PagarmeApiSDKClient, adicionei a referência ao
IConfiguration
com o intuito de acessar as informações de usuário e senha presentes noappsettings.json
. No entanto, para minha surpresa, percebi que, devido aousing PagarmeApiSDK;
, há uma outra Interface também chamadaIConfiguration
do componente da PagarMe. Essa duplicidade gera um conflito com oIConfiguration
presente no namespaceMicrosoft.Extensions.Configuration
.Não seria mais apropriado posicionar o IConfiguration em um namespace diferente? ou, talvez renomeá-lo para evitar conflitos com as classes do framework? Uma terceira opção poderia ser, caso o IConfiguration do PagarmeApiSDK não seja essencial para uso pelos clientes finais (como no meu caso), alterar seu modificador de acesso para "internal". Dessa forma, sua exposição desnecessária seria evitada.
É possível contornar a situação ao especificar o namespace completo, no entanto creio que seria mais conveniente se um componente fosse projetado para ser menos intrusivo e evitar potenciais conflitos com classes do framework.
The text was updated successfully, but these errors were encountered: