# C#-stöd i Maguyva: säkrare refaktorering för .NET-kodbaser

Canonical source: https://maguyva.ai/sv/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 stöder C# med AST-parsning och symbolextraktion, så att AI-agenter kan arbeta över .NET-tjänster, LINQ-tung affärslogik, delade bibliotek och långlivade enterprise-repositorier.

## Stödöversikt

- Nivå: Stöd för AST och symboler
- Programmering
- Filändelser: .cs, .csx
- Riktig AST-parsning för syntaxmedveten sökning och strukturell kontext.
- Namngivna symboler driver semantisk uppslagning och korsreferenser. Grafnavigering är tillgänglig när relationsextraktion är aktiverad.
- Det här språket bidrar med symboler och relationer till grafmedveten sökning; vilka kanttyper som stöds varierar med språkets inbyggda konstruktioner.
- Både AST-parsning och symbolextraktion är tillgängliga.

## Bäst lämpad för

- ASP.NET-, worker-service- och interna plattformsrepositorier som blandar webbendpoints, jobb och delade bibliotek.
- Team som underhåller mogna .NET-bestånd där LINQ, asynkrona flöden och ramverksabstraktioner döljer den verkliga exekveringsvägen.
- Team som testar om en agent kan förbli grundad i lagerindelad .NET-kod innan affärslogik skrivs om.

## Agentarbetsflöden

- Följ en väg genom controller, service och repository innan affärslogik redigeras.
- Inspektera var en modell, DTO eller delad hjälpfunktion instansieras i repot.
- Förstå omgivande LINQ- eller async-mönster innan agenten får skriva om något.

## Vad som spelar roll i mogna .NET-kodbaser

Många team som använder AI-verktyg lever i .NET, inte i greenfield-JavaScript. De har API:er, worker-processer, delade modeller, interna bibliotek och åratal av affärslogik. Frågan är inte om en LLM kan skriva C#-syntax. Frågan är om den kan behålla förankringen i ett repositorium där en enda felaktig ändring kan sprida sig genom tjänster, modeller och delade abstraktioner.

Det är därför en C#-sida måste vara mer specifik än "stöds".

## Vad Maguyva faktiskt extraherar i C#

Maguyva normaliserar `using`-importer, tar bort nullable- och array-suffix som `?` och `[]` från definitioner, och behandlar konstruktorliknande anropsnoder som instansieringar samtidigt som vinkelparenteser runt generiska typparametrar tas bort. Det är användbara detaljer i klasstunga C#-repon eftersom de gör grafen renare runt verkliga domäntyper.

Konfigurationen filtrerar också bort mycket BCL- och LINQ-brus. Det spelar större roll än det låter. I mogna .NET-kodbaser är en graf dominerad av ramverksanrop inte särskilt hjälpsam. Den användbara grafen är den där repositoriespecifika controllers, tjänster, DTO:er och hjälpklasser fortfarande sticker ut.

## Användbara MCP-arbetsflöden för .NET-kodbaser

Det praktiska flödet börjar oftast med:

- `find_symbol` när du känner till controllerns, tjänstens, DTO:ns eller modellens namn.
- `dependency_search` innan en delad tjänst eller typ som kan ha många inkommande beroenden redigeras.
- `get_task_context` för prompter som "följ den här förfrågan från controller till repository" när vägen spänner över flera lager.

## När den här sidan är användbar

Den här sidan är för team som vill ha AI-assistans inuti en riktig .NET-kodbas, inte bara ett leksaksprojekt. Om det omgivande systemet är mer JVM än .NET, jämför med [Java](/sv/languages/java). Om ditt C#-lager bara är en del av ett större polyglott system är den angränsande [TypeScript](/sv/languages/typescript)-sidan oftast också relevant.

## Motordetaljer

- `using`-prefix normaliseras på imports, och nullable- eller arraysuffix som `?` och `[]` tas bort från symboldefinitioner.
- Instansiering använder anropsnoder där vinkelparenteser för generiska typer tas bort, vilket håller konstruktorliknande användning läsbar i grafen.
- Konfigurationen filtrerar uttryckligen bort stora mängder BCL- och LINQ-brus så att repospecifika tjänster och modeller blir lättare att hitta.

## Användbara MCP-ingångar

- `find_symbol`: Använd när du känner till namnet på den controller, tjänst, DTO eller delade typ som du ska ändra.
- `dependency_search`: Använd inkommande traversering innan du ändrar en central tjänst eller modell som används över hela applikationen.
- `get_task_context`: Användbart för prompter som "följ den här förfrågan från controller till repository" i lagerindelade .NET-kodbaser.
