# Supporto C# in Maguyva: refactor più sicuri per codebase .NET

Canonical source: https://maguyva.ai/it/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).

Maguyva supporta C# con parsing AST ed estrazione dei simboli, così gli agenti IA possono lavorare su servizi .NET, logica di business ricca di LINQ, librerie condivise, e repository enterprise di lunga data.

## Istantanea del supporto

- Livello: Supporto AST e simboli
- Programmazione
- Estensioni: .cs, .csx
- Analisi AST reale per ricerca sintattica e contesto strutturale.
- I simboli nominati alimentano la ricerca semantica e i riferimenti incrociati. La navigazione del grafo è disponibile quando è abilitata l’estrazione delle relazioni.
- Questo linguaggio contribuisce con simboli e relazioni alla ricerca basata sul grafo; i tipi di arco supportati variano in base ai suoi costrutti nativi.
- Sono disponibili sia l’analisi AST sia l’estrazione dei simboli.

## Il più adatto per

- Repository ASP.NET, worker-service, e piattaforme interne che mescolano endpoint web, job, e librerie condivise.
- Team che mantengono patrimoni .NET maturi dove LINQ, flussi async, e astrazioni del framework nascondono il vero percorso di esecuzione.
- Team che verificano se un agente può restare ancorato al codice .NET a più livelli prima di riscrivere la logica di business.

## Workflow degli agenti

- Segui il percorso tra controller, service, e repository prima di modificare la logica di business.
- Ispeziona dove un model, DTO, o utility condivisa viene istanziato nel repository.
- Capisci i pattern LINQ o async circostanti prima di lasciare che l'agente riscriva qualcosa.

## Cosa conta nei codebase .NET maturi

Molti team che usano tooling IA vivono in .NET, non in JavaScript greenfield. Hanno API, processi worker, model condivisi, librerie interne, e anni di logica di business. La domanda non è se un LLM sappia emettere sintassi C#. La domanda è se sappia basarsi sul codice reale di un repository dove una modifica sbagliata può propagarsi attraverso servizi, model, e astrazioni condivise.

Ecco perché una pagina su C# deve essere più specifica di "supportato".

## Cosa estrae davvero Maguyva in C#

Maguyva normalizza gli import di `using`, rimuove suffissi nullable e array come `?` e `[]` dalle definizioni, e tratta i nodi di chiamata simili a costruttori come istanziazioni rimuovendo le parentesi angolari generiche. Sono dettagli utili nei repository C# ricchi di classi perché rendono il grafo più pulito intorno ai veri tipi di dominio.

La configurazione filtra anche molto rumore proveniente da BCL e LINQ. Conta più di quanto sembri. Nei codebase .NET maturi, un grafo dominato dalle chiamate al framework non è molto utile. Il grafo utile è quello dove controller, service, DTO, e classi helper specifici del repository continuano a risaltare.

## Workflow MCP utili per i codebase .NET

Il flusso pratico di solito inizia con:

- `find_symbol` quando conosci il nome del controller, service, DTO, o model.
- `dependency_search` prima di modificare un service o un tipo condiviso che potrebbe essere usato da molti altri componenti.
- `get_task_context` per prompt come "segui questa richiesta dal controller al repository" quando il percorso attraversa più livelli.

## Quando questa pagina è utile

Questa pagina è per i team che vogliono assistenza IA dentro un vero codebase .NET, non solo un progetto giocattolo. Se il sistema circostante è più JVM che .NET, confronta con [Java](/it/languages/java). Se il tuo livello C# è solo una parte di un sistema poliglotta più ampio, di solito è rilevante anche la pagina adiacente su [TypeScript](/it/languages/typescript).

## Dettagli del motore

- I prefissi `using` vengono normalizzati sugli import, e i suffissi nullable o array come `?` e `[]` vengono rimossi dalle definizioni dei simboli.
- L'istanziazione usa nodi di chiamata con rimozione delle parentesi angolari generiche, il che aiuta a mantenere leggibile l'uso simile a costruttore nel grafo.
- La configurazione filtra esplicitamente grandi quantità di rumore BCL e LINQ così i servizi e i modelli specifici del repository sono più facili da far emergere.

## Punti di ingresso MCP utili

- `find_symbol`: Usalo quando conosci il nome del controller, del servizio, del DTO o del tipo condiviso che stai per toccare.
- `dependency_search`: Usa l'attraversamento in entrata prima di modificare un servizio core o un modello usato in tutta l'applicazione.
- `get_task_context`: Utile per prompt come “segui questa richiesta dal controller al repository” in codebase .NET a livelli.
