Zajímavé reakce, díky..
Možná jsem se vyjádřil zavádějícím způsobem. Je to implementace messagingu v rámci high level client server síťové knihovny(Badumna) v .Net..
Tady je pro zajímavost trochu detailnější popis motivace..
Zprávy jsou všechny děděný z třídy BaseEvent, která obsahuje jen proměnnou Nonce pro implementaci blokující odpovědi na otázku v jinak async client server prostředí. Krom toho obsahuje pouze abstraktní metody. Jednotlivé zděděné zprávy pak sobě implementují pouze serializaci a deserializaci a konstruktor, který mechanicky přiřadí proměnné, což je taky opruz, protože to je byrokracie a nepřišel jsem na to, jak to implementovat přes compile-time - než jsem zjistil, že to nejde. Používat reflection nejde, protože to by bylo moc pomalé. T4 na to asi bude fungovat, ale jestli to bude přehledný je věc druhá a budu to zkoumat...
Každá zpráva je určena pro jeden typ události a jeden typ cílového serveru, tj de/serializace je bez větvení a jakékoli chytrosti.
De/serializace probíhá potom tak, že se genericky de/serializuje třída a podle ní zbytek..
No a právě odesílání a zpracovávání deserializovaných eventů je to, proč jsem sem psal a ptal se na to vytváření názvů a tiše doufal, že to půjde preprocesorem.
Pojmenování těch eventů má svá pravidla a funkce pro jejich odesílání a zpracovávání taky. Je to takhle udělaný aby to bylo srozumitelný i pro cizí lidi co přijdou po mě a aby přidávání nových eventů nebo luštění starých vyžadovalo naprosté minimum intelektuálních schopností a námahy a relativně omezené api..