C# Source Generators - prvý pokus

Po C# Source Generátoroch pokukujem odkedy boli predstavené spolu s .NET 5 a C# 9. Plánujem ich využiť na odbúranie učitých "boilerplate" v naších projektoch. Na zoznámenie mi to však prišlo celkom veľké sústo a tak som si vymyslel ToString generátor 😉.


Toto je sprievodná diskusia k pôvodnej téme na https://blog.vyvojari.dev/c-source-generators-prvy-pokus/

Zatial takmer vsetky Sourcegeneratori, ktore som videl, si attributy generovali same (ako internal) do projektu.
Preco si sa rozhodol ist cestou samosttanehoassembly? Ci don pride este dalsia funkcionalita?

Ahoj,

Spravil som to tak čisto z dôvodu, že som to takto chcel vyskúšať. V tomto konkrétnom prípade (nemyslím si, že okrem mňa to bude niekto používať a že tam bude nejaký ďalší rozvoj) tam asi nič nepribudne. Napadá mi jedine nejaké nastavenia pre to ako sa má daný override vyskladať, ale to by som asi aj tak spravil pomocou AdditionalFiles a nech si klient špecifikuje vlastnú časť šablóny.

Vyskúšať som to chcel preto, že mám v hlave zopár generátorov, ktoré by sa nám na projektoch zišli a tam už sa samostatná assembly bude hodiť.

Ahoj,
inac pri citano o Scriban kniznici a “miernych komplikaciach” pri dalsom assembly ma napadlo, ci nejestvuje source generator na Scriban :smiley:

Vyskúšať som to chcel preto, že mám v hlave zopár generátorov, ktoré by sa nám na projektoch zišli a tam už sa samostatná assembly bude hodiť.

Ake to su, ak to nie je tajne?

Ja som mal tiez par napadov, ale v podstate uz na nich robia iny. A generator pre serializaciu/deserializaciu cez System.Text.Json bude pravdepodobne sucastou nasledujuceho releaseu .Net-u.

Priamo takto s tým Scriban-om som to nehľadal, ale pri study som na nič podobné nenarazil.

Čo sa týka tých plánov, tak nie je to nič tajné. Napríklad z určitých interných dôvodov máme k niektorým doménovým triedam ich flat podobu. Napr. pre kompozíciu typu Supplier.PostalAddress.BusinessName máme v tomto flat objekte property SupplierPostalAddressBusinessName, takže môj ďalší generátor bude na generovanie týchto flat tried na základe určitých pravidiel/nastavení.

1 Like

Tak Scriban stihol zareagovať :slight_smile:
scriban/scriban: Source Embedding (github.com)

1 Like