# Prise en charge de C# dans Maguyva : des refactorisations plus sûres pour les bases de code .NET

Canonical source: https://maguyva.ai/fr/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 prend en charge C# avec analyse AST et extraction de symboles, permettant aux agents IA de travailler sur des services .NET, une logique métier riche en LINQ, des bibliothèques partagées et des dépôts d'entreprise de longue durée.

## Aperçu du support

- Palier: Prise en charge de l’AST et des symboles
- Programmation
- Extensions: .cs, .csx
- Analyse AST réelle pour une recherche consciente de la syntaxe et un contexte structurel.
- Les symboles nommés alimentent la recherche sémantique et le référencement croisé. La navigation par graphe est disponible lorsque l’extraction de relations est activée.
- Ce langage fournit des symboles et des relations à la recherche tenant compte du graphe ; les types d’arêtes pris en charge varient selon ses constructions natives.
- L’analyse AST et l’extraction de symboles sont toutes deux disponibles.

## Idéal pour

- Les dépôts ASP.NET, worker-service et de plateforme interne qui mélangent points d'accès web, tâches planifiées et bibliothèques partagées.
- Les équipes qui maintiennent des parcs .NET matures où LINQ, les flux asynchrones et les abstractions de framework masquent le véritable chemin d'exécution.
- Les équipes qui testent la capacité d'un agent à rester ancré dans du code .NET en couches avant de réécrire la logique métier.

## Workflows d'agent

- Suivre un chemin contrôleur, service et dépôt de données avant de modifier la logique métier.
- Inspecter où un modèle, un DTO ou un utilitaire partagé est instancié dans l'ensemble du dépôt.
- Comprendre les schémas LINQ ou asynchrones environnants avant de laisser l'agent réécrire quoi que ce soit.

## Ce qui compte dans les bases de code .NET matures

De nombreuses équipes qui utilisent des outils IA vivent dans .NET, pas dans du JavaScript en terrain vierge. Elles ont des API, des processus worker, des modèles partagés, des bibliothèques internes et des années de logique métier. La question n'est pas de savoir si un LLM peut produire de la syntaxe C#. La question est de savoir s'il peut rester ancré dans un dépôt où une seule modification incorrecte peut se propager à travers les services, les modèles et les abstractions partagées.

C'est pourquoi une page C# doit aller au-delà d'un simple « pris en charge ».

## Ce que Maguyva extrait réellement en C#

Maguyva normalise les imports `using`, retire des définitions les suffixes de nullabilité et de tableau tels que `?` et `[]`, et traite les nœuds d'appel de type constructeur comme des instanciations tout en supprimant les chevrons des types génériques. Ce sont des détails utiles dans les dépôts C# riches en classes, car ils rendent le graphe plus net autour des véritables types métier.

La configuration filtre aussi une grande partie du bruit lié à la BCL et à LINQ. Cela compte plus qu'il n'y paraît. Dans les bases de code .NET matures, un graphe dominé par les appels de framework n'est pas très utile. Le graphe utile est celui où les contrôleurs, services, DTO et classes utilitaires propres au dépôt ressortent encore clairement.

## Flux de travail MCP utiles pour les bases de code .NET

Le flux pratique commence généralement par :

- `find_symbol` quand vous connaissez le nom du contrôleur, du service, du DTO ou du modèle.
- `dependency_search` avant de modifier un service ou un type partagé susceptible d'être utilisé par de nombreuses autres parties du code.
- `get_task_context` pour des requêtes du type « suivre cette requête du contrôleur jusqu'au dépôt de données » lorsque le chemin traverse plusieurs couches.

## Quand cette page est utile

Cette page s'adresse aux équipes qui souhaitent une assistance IA au sein d'une véritable base de code .NET, pas d'un simple projet jouet. Si le système environnant relève davantage de la JVM que de .NET, comparez avec [Java](/fr/languages/java). Si votre couche C# n'est qu'une partie d'un système polyglotte plus large, la page adjacente [TypeScript](/fr/languages/typescript) est généralement pertinente aussi.

## Détails du moteur

- Les préfixes `using` sont normalisés sur les imports, et les suffixes nullable ou tableau comme `?` et `[]` sont retirés des définitions de symboles.
- L'instanciation utilise des nœuds d'appel avec retrait des chevrons des types génériques, ce qui aide à garder l'usage de type constructeur lisible dans le graphe.
- La config filtre explicitement une grande quantité de bruit BCL et LINQ pour que les services et modèles propres au dépôt soient plus faciles à faire remonter.

## Points d'entrée MCP utiles

- `find_symbol`: Utilisez-le quand vous connaissez le nom du contrôleur, service, DTO ou type partagé que vous allez toucher.
- `dependency_search`: Utilisez la traversée entrante avant de modifier un service central ou un modèle utilisé dans toute l'application.
- `get_task_context`: Utile pour des prompts comme « suivre cette requête du contrôleur au composant repository » dans les dépôts .NET en couches.
