none
Použití atributů a reflexe pro komentování zdrojáků

    Dotaz

  • Zdravím,

    při konverzi aplikace z Delphi do C# (půl milionu řádků) vyvstala potřeba trousit do C# zdrojáků komentáře o stavu přepisu metod, tříd, atd. Jedná se o podobné, často se opakující typy komentářů.

    Napadlo mě definovat vlastní atribut a příslušné části kódu "okomentovat" atributy, které pak lze snadno hromadně načíst pomocí reflexe. Ve speciální aplikaci mám přehled nad všemi komentáři (ve skutečnosti atributy) v celé aplikaci, lze je třídit atd.

    Otázka 1: Pokud někdo řešil něco podobného, jakým způsobem jste "organizovali" tuto činnost - tj poznámky v kódu "chybí dialog, volání X, volání Y, otestovat ..."?

    Otázka 2: Šlo by nějakým způsobem z té aplikace měnit atribut/komentář v C# zdrojáku bez jeho přímé editace? (tedy bez ručního otevření zdrojáku ve VS?). Jak na to? Lze reflexí zjistit číslo řádku, na kterém je umístěný atribut?

    pondělí 24. května 2010 10:17

Odpovědi

  • ad 1) Podívejte se na XML comments v C#, které se při kompilaci extrahují do XML souborů a lze je zpracovávat. Další udělátko jsou komentáře ve tvaru // TODO: ...  a obdobných, která potom Visual Studio umí vypsat a pracovat s nimi z jednoho okna přes celé solution. Nic dalšího vestavěného tam není, mrkněte ale do Visual Studio Gallery, dneska už jsou mraky doplňků na všechno.

    ad 2) Osobně bych to neviděl jako rozumnou cestu. Atributy jsou sice určitá metadata uložená v kompilovaném kódu, nicméně ve vašem snažení to nepomůže a jenom vám to zabordelí projekt. Číslo řádku z reflexe nedostanete, jedině to páčit nějak ze PDB symbols, ale to nevidím reálně.

    ...to asi jděte tou cestou // TODO:, dostanete podporu ve Visual Studiu a můžete to snadno parsovat a editovat i nějakým vlastním nástrojem.


    Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz
    pondělí 24. května 2010 19:27
    Moderátor