Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 413|Resposta: 0

[Gorjetas] .NET/C# ferramenta de registro de serviço de injeção de dependências Scrutor

[Copiar link]
Publicado em 2025-9-4 09:37:00 | | |
Requisitos: Quando o projeto é relativamente grande e a sintaxe de escrita é muito padronizada, ao adicionarmos uma interface, precisamos adicioná-la manualmente no contêiner IServiceCollection, para que a interface possa ser injetada no construtor. A ferramenta Scrutor é muito conveniente para adicionarmos automaticamente de acordo com nossa configuração de regras.

Scrutor

Microsoft.Extensions.DependencyInjection para varredura de montagem e decoração de extensões.

Endereço do código-fonte:O login do hiperlink está visível.

revisar

Olhando para o registro de serviço, as três formas de injeção singleton são as seguintes:

Registro de serviço

Vamos supor que você tenha uma estrutura de código assim:

Definições de interface
interface pública IUserService { }
interface pública IOrderService { }

Classe de implementação
classe pública UserService : IUserService { }
classe pública OrderService : IOrderService { }

antes

O registro é obrigatório um a um, e o código é o seguinte:

Ou escreva seu próprio método e registre por meio da reflexão :(Na verdade, Scrutor também é através da reflexão), da seguinte forma:

depois

O Scrutor torna muito conveniente registrar assembly scan, especialmente para registrar automaticamente múltiplas classes de serviço (por exemplo, UserService registrado como IUserService). As dependências dos pacotes são as seguintes:

O código é o seguinte:

Interpretação:
  • . <UserService>FromAssemblyOf(): Especifica o assembly a ser escaneado.
  • . AddClasses(): Escaneia todas as classes do conjunto assembly.
  • . AsImplementedInterfaces(): Registra automaticamente as interfaces dessas classes à medida que são implementadas.
  • . WithScopedLifetime(): Defina o tempo de vida para Scoped, que também pode ser WithTransientLifetime() ou WithSingletonLifetime().

(Fim)




Anterior:.NET/C# converte PDFs em imagens baseadas em ImageMagick, GhostScript
Próximo:Alibaba Cloud monta o OSS no diretório do sistema Linux
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com