Reflexe, .NET
24. 1. 2009 15:34
Pavel Veselý
9 27
Zdravím,
mám definováno určité rozhraní a několik tříd, které ho implementují. Chtěl bych zjistit, které třídy to jsou přímo za běhu programu. Třídy i rozhraní jsou ve stejném jmenném prostoru.
Lze to udělat nějak elegantně nebo musím procházet všechny typy ve jmenném prostoru?
24. 1. 2009 15:48
Ondřej Linhart
-553 3274
Pomocí Reflection lze získat informace (včetně rozhraní které implementuje) o všech typech v určité Assembly. Je jedno v jakém Namespace se typy v Assembly nacházejí, musíte projít všechny. K čemu potřebujete za běhu zjišťovat, zda-li nějaký typ implementuje nějaké rozhraní?
24. 1. 2009 16:46
Mám několik tříd a od každé z nich jednu instanci v poli (pole se načítá při spuštění). Problém je, že třídy mohou do budoucna přibývat, takže bych je mohl zapomenout přidat do pole.
24. 1. 2009 16:50
No a co to má společného se zjišťováním implementuje-li třída určité rozhraní?
24. 1. 2009 17:14
Potřebuju zjistit, které třídy patří do pole a které ne, což udělám tak, že budu hledat třídy, které implementují nějaké rozhraní (mohlo by jít i o abstraktní třídu, ale nevidím v tom žádnou výhodu).
24. 1. 2009 17:32
Nevím sice k čemu toto má sloužit, ale už tak se mi to zdá jako velmi zhovadilé řešení. Reflection se má používat co nejméně a pouze v případě, kdy to nejde udělat jinak.
24. 1. 2009 16:32
Tomáš Jecha, MVP, MCSD
860 1596
Musíte projít všechny pomocí reflexe. Víte jak to udělat?
Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování. Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.
zapomenuté heslo
zaregistrujte se
Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?
Nahlásit Zrušit
zavřít