# Podpora C# v nástroji Maguyva: bezpečnější refaktoring pro codebase v .NET

Canonical source: https://maguyva.ai/cs/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 podporuje C# díky AST parsování a extrakci symbolů, takže AI agenti dokážou pracovat napříč službami .NET, byznysovou logikou plnou LINQ, sdílenými knihovnami a dlouhověkými enterprise repozitáři.

## Přehled podpory

- Úroveň: Podpora AST a symbolů
- Programování
- Přípony: .cs, .csx
- Skutečné parsování AST pro vyhledávání citlivé na syntaxi a strukturální kontext.
- Pojmenované symboly napájejí sémantické vyhledávání a křížové odkazy. Navigace v grafu je k dispozici, když je povolena extrakce vztahů.
- Tento jazyk přispívá symboly a vztahy do vyhledávání využívajícího graf; podporované typy hran se liší podle jeho nativních konstrukcí.
- K dispozici je parsování AST i extrakce symbolů.

## Nejlépe se hodí pro

- Repozitáře ASP.NET, worker služeb a interních platforem, které kombinují webové endpointy, joby a sdílené knihovny.
- Týmy udržující vyzrálá prostředí .NET, kde LINQ, asynchronní toky a abstrakce frameworku skrývají skutečnou cestu provedení.
- Týmy testující, zda agent dokáže zůstat ukotvený ve vrstveném kódu .NET ještě před přepisem byznysové logiky.

## Workflow agentů

- Projít cestu přes controller, službu a repository ještě před úpravou byznysové logiky.
- Zjistit, kde je model, DTO nebo sdílený utility nástroj vytvářen napříč repozitářem.
- Pochopit okolní vzory LINQ nebo asynchronního kódu dřív, než necháte agenta cokoliv přepsat.

## Na čem záleží ve vyzrálých codebase .NET

Spousta týmů používajících nástroje AI žije v .NET, ne v greenfield JavaScriptu. Mají API, worker procesy, sdílené modely, interní knihovny a roky byznysové logiky. Otázka nezní, jestli LLM umí vygenerovat syntaxi C#. Otázka zní, jestli dokáže zůstat ukotvený uvnitř repozitáře, kde jedna špatná úprava dokáže ovlivnit služby, modely i sdílené abstrakce.

Proto musí být stránka o C# konkrétnější než jen „podporováno“.

## Co Maguyva v C# skutečně extrahuje

Maguyva normalizuje importy `using`, odstraňuje z definic nullable a array přípony jako `?` a `[]` a uzly volání podobné konstruktorům zpracovává jako instanciace, přičemž odstraňuje generické závorky. To jsou užitečné detaily v repozitářích C# s velkým množstvím tříd, protože díky nim je graf kolem skutečných doménových typů čistší.

Konfigurace navíc odfiltruje spoustu šumu z BCL a LINQ. Na tom záleží víc, než by se mohlo zdát. Ve vyzrálých codebase .NET není graf ovládaný voláními frameworku moc užitečný. Užitečný je graf, ve kterém stále vyniknou controllery, služby, DTO a pomocné třídy specifické pro daný repozitář.

## Užitečné workflow MCP pro codebase .NET

Praktický postup obvykle začíná takto:

- `find_symbol`, když znáte název controlleru, služby, DTO nebo modelu.
- `dependency_search` dřív, než upravíte sdílenou službu nebo typ, který může mít široké použití napříč kódem.
- `get_task_context` pro dotazy typu „projít tento request od controlleru po repository“, když cesta prochází přes několik vrstev.

## Kdy je tato stránka užitečná

Tato stránka je pro týmy, které chtějí asistenci AI ve skutečné kódové základně .NET, ne jen v ukázkovém projektu. Pokud je okolní systém spíš JVM než .NET, porovnejte to s [Javou](/cs/languages/java). Pokud je vaše vrstva v C# jen jednou částí většího polyglotního systému, obvykle se hodí i sousední stránka [TypeScript](/cs/languages/typescript).

## Podrobnosti enginu

- Prefixy `using` se u importů normalizují a nullable nebo array přípony jako `?` a `[]` se odstraňují z definic symbolů.
- Instanciace používá call uzly s odstraněním generických závorek, což pomáhá udržet použití podobné konstruktoru čitelné v grafu.
- Konfigurace explicitně filtruje velké množství šumu z BCL a LINQ, aby se snáz vynořily služby a modely specifické pro repozitář.

## Užitečné vstupní body MCP

- `find_symbol`: Použijte ho, když znáte název controlleru, služby, DTO nebo sdíleného typu, kterého se chystáte dotknout.
- `dependency_search`: Použijte příchozí traverzování před úpravou core služby nebo modelu používaného napříč aplikací.
- `get_task_context`: Užitečné pro dotazy jako „sleduj tento request od controlleru po repository“ ve vrstvených .NET kódových bázích.
