# Suporte a C# no Maguyva: Refatorações Mais Seguras para Codebases .NET

Canonical source: https://maguyva.ai/pt-br/languages/csharp

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

O Maguyva oferece suporte a C# com parsing de AST e extração de símbolos, permitindo que agentes de IA trabalhem em serviços .NET, lógica de negócio pesada em LINQ, bibliotecas compartilhadas e repositórios corporativos de longa vida.

## Panorama de suporte

- Nível: Suporte a AST e símbolos
- Programação
- Extensões: .cs, .csx
- Parsing real de AST para busca com consciência de sintaxe e contexto estrutural.
- Símbolos nomeados alimentam a busca semântica e as referências cruzadas. A navegação por grafo fica disponível quando a extração de relações está habilitada.
- Esta linguagem fornece símbolos e relações para a busca orientada por grafo; os tipos de aresta compatíveis variam de acordo com seus construtos nativos.
- A análise de AST e a extração de símbolos estão disponíveis.

## Uso ideal

- Repositórios ASP.NET, de worker services e de plataformas internas que combinam endpoints web, jobs e bibliotecas compartilhadas.
- Equipes que mantêm parques .NET maduros, onde LINQ, fluxos assíncronos e abstrações de framework escondem o caminho de execução real.
- Equipes que testam se um agente consegue se manter fundamentado em código .NET em camadas antes de reescrever lógica de negócio.

## Fluxos de trabalho de agente

- Seguir o caminho entre controller, service e repository antes de editar lógica de negócio.
- Inspecionar onde um model, DTO ou utilitário compartilhado é instanciado em todo o repositório.
- Entender os padrões de LINQ ou assíncronos ao redor antes de deixar o agente reescrever qualquer coisa.

## O que importa em codebases .NET maduros

Muitas equipes que usam ferramentas de IA vivem em .NET, não em projetos novos em JavaScript. Elas têm APIs, processos worker, models compartilhados, bibliotecas internas e anos de lógica de negócio. A questão não é se um LLM consegue gerar sintaxe C#. A questão é se ele consegue se manter fundamentado dentro de um repositório em que uma edição errada pode se propagar por services, models e abstrações compartilhadas.

É por isso que uma página sobre C# precisa ser mais específica do que "suportado".

## O que o Maguyva realmente extrai em C#

O Maguyva normaliza imports de `using`, remove sufixos de nullable e de array, como `?` e `[]`, das definições, e trata nós de chamada semelhantes a construtores como instanciações, removendo delimitadores angulares dos tipos genéricos. Esses são detalhes úteis em repositórios C# ricos em classes, porque deixam o grafo mais limpo em torno dos tipos de domínio reais.

A configuração também filtra bastante ruído de BCL e LINQ. Isso importa mais do que parece. Em codebases .NET maduros, um grafo dominado por chamadas de framework não é muito útil. O grafo útil é aquele em que controllers, services, DTOs e classes auxiliares específicos do repositório continuam se destacando.

## Fluxos de trabalho com MCP úteis para codebases .NET

O fluxo prático geralmente começa com:

- `find_symbol` quando você já sabe o nome do controller, service, DTO ou model.
- `dependency_search` antes de editar um service ou tipo compartilhado que pode ser usado por muitas partes do sistema.
- `get_task_context` para prompts como "seguir esta requisição do controller até o repository" quando o caminho atravessa várias camadas.

## Quando esta página é útil

Esta página é para equipes que querem assistência de IA dentro de um codebase .NET real, não apenas em um projeto de teste. Se o sistema ao redor é mais JVM do que .NET, compare com [Java](/pt-br/languages/java). Se a sua camada C# é apenas uma parte de um sistema poliglota maior, a página adjacente de [TypeScript](/pt-br/languages/typescript) também costuma ser relevante.

## Detalhes do motor

- Prefixos `using` são normalizados nos imports, e sufixos nullable ou de array como `?` e `[]` são removidos das definições de símbolo.
- A instanciação usa nós de chamada com remoção de delimitadores angulares dos tipos genéricos, o que ajuda a manter o uso tipo-construtor legível no grafo.
- A configuração filtra explicitamente uma boa quantidade de ruído da BCL e do LINQ, para que serviços e modelos específicos do repositório fiquem mais fáceis de encontrar.

## Pontos de entrada MCP úteis

- `find_symbol`: Use quando souber o nome do controller, serviço, DTO ou tipo compartilhado em que está prestes a mexer.
- `dependency_search`: Use travessia incoming antes de editar um serviço ou modelo central usado em toda a aplicação.
- `get_task_context`: Útil para prompts como “siga essa requisição do controller até o repositório” em codebases .NET em camadas.
