# C#-støtte i Maguyva: Tryggere refaktorering for .NET-kodebaser

Canonical source: https://maguyva.ai/nb/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øtter C# med AST-parsing og symbolutvinning, slik at AI-agenter kan jobbe på tvers av .NET-tjenester, LINQ-tung forretningslogikk, delte biblioteker og langvarige bedriftsrepositorier.

## Støtteoversikt

- Nivå: AST- og symbolstøtte
- Programmering
- Filendelser: .cs, .csx
- Ekte AST-analyse for syntaksbevisst søk og strukturell kontekst.
- Navngitte symboler mater semantisk oppslag og kryssreferanser. Grafnavigasjon er tilgjengelig når relasjonsuttrekk er aktivert.
- Dette språket bidrar med symboler og relasjoner til grafbasert søk; støttede kanttyper varierer med språkets egne konstruksjoner.
- Både AST-analyse og symboluttrekk er tilgjengelige.

## Best egnet

- ASP.NET-, worker-service- og interne plattformrepositorier som blander web-endepunkter, jobber og delte biblioteker.
- Team som vedlikeholder modne .NET-porteføljer der LINQ, asynkrone flyter og rammeverksabstraksjoner skjuler den faktiske kjøringsstien.
- Team som tester om en agent kan holde seg forankret i lagdelt .NET-kode før forretningslogikk skrives om.

## Agent-arbeidsflyter

- Følg en controller-, tjeneste- og repository-sti før du redigerer forretningslogikk.
- Undersøk hvor en modell, DTO eller delt hjelpefunksjon instansieres på tvers av repositoriet.
- Forstå omkringliggende LINQ- eller async-mønstre før du lar agenten skrive om noe.

## Hva som betyr noe i modne .NET-kodebaser

Mange team som bruker AI-verktøy, holder til i .NET, ikke i JavaScript-prosjekter som bygges fra grunnen av. De har API-er, worker-prosesser, delte modeller, interne biblioteker og år med forretningslogikk. Spørsmålet er ikke om en LLM kan produsere C#-syntaks. Spørsmålet er om den kan holde seg forankret inne i et repositorium der én feil endring kan forplante seg gjennom tjenester, modeller og delte abstraksjoner.

Derfor må en C#-side være mer spesifikk enn «støttet».

## Hva Maguyva faktisk trekker ut i C#

Maguyva normaliserer `using`-importer, fjerner nullable- og array-suffikser som `?` og `[]` fra definisjoner, og behandler konstruktørlignende kallnoder som instansieringer samtidig som vinkelparenteser rundt generiske typer fjernes. Dette er nyttige detaljer i klassetunge C#-repositorier fordi de gjør grafen renere rundt de faktiske domenetypene.

Konfigurasjonen filtrerer også bort mye BCL- og LINQ-støy. Det betyr mer enn det høres ut som. I modne .NET-kodebaser er ikke en graf dominert av rammeverkskall særlig nyttig. Den nyttige grafen er den der repositoriespesifikke controllere, tjenester, DTO-er og hjelpeklasser fortsatt skiller seg ut.

## Nyttige MCP-arbeidsflyter for .NET-kodebaser

Den praktiske flyten starter som regel med:

- `find_symbol` når du kjenner navnet på controlleren, tjenesten, DTO-en eller modellen.
- `dependency_search` før du redigerer en delt tjeneste eller type som kan ha mange kall fra andre deler av koden.
- `get_task_context` for spørringer som «følg denne forespørselen fra controller til repository» når stien strekker seg over flere lag.

## Når denne siden er nyttig

Denne siden er for team som ønsker AI-assistanse inne i en ekte .NET-kodebase, ikke bare et lekeprosjekt. Hvis systemet rundt er mer JVM enn .NET, sammenlign med [Java](/nb/languages/java). Hvis C#-laget ditt bare er én del av et større flerspråklig system, er den tilstøtende siden om [TypeScript](/nb/languages/typescript) som regel også relevant.

## Motordetaljer

- `using`-prefikser normaliseres på imports, og nullbare eller array-suffikser som `?` og `[]` fjernes fra symboldefinisjoner.
- Instansiering bruker kall-noder med fjerning av generiske klammer, noe som hjelper å holde konstruktørlignende bruk lesbar i grafen.
- Konfigurasjonen filtrerer eksplisitt bort store mengder BCL- og LINQ-støy, slik at repospesifikke tjenester og modeller er lettere å finne fram til.

## Nyttige MCP-inngangspunkter

- `find_symbol`: Bruk det når du kjenner navnet på controlleren, tjenesten, DTO-en eller den delte typen du er i ferd med å røre.
- `dependency_search`: Bruk innkommende traversering før du redigerer en kjernetjeneste eller modell som brukes på tvers av applikasjonen.
- `get_task_context`: Nyttig for prompter som «følg denne forespørselen fra controller til repository» i lagdelte .NET-kodebaser.
