[ sulja @ 09.03.2007. 10:18 ] @
Da li moze nekako da se dobije lista klasa iz odradjenog namespace-a ?
Konkretno imam u aplikaciji namespace gde stavljam svoje kontrole koje se koriste u aplikaciji, pa mi je sad potrebno da izlistam sve te kontrole koje su smestene u jednom namespace-u.
[ IDeveloper @ 14.03.2007. 08:24 ] @
Za listu klasa u namespacu ....
Moze nesto ovako:
Code:


System.Collections.Generic.List<string> ImenaKlasa = new System.Collections.Generic.List<string>();
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
Type[] tipovi = assembly.GetTypes();

foreach (Type Tip in tipovi)
{
      if (Tip.IsClass)
      {
         ImenaKlasa.Add(Tip.Name);
      }
}

Pozdrav!

[Ovu poruku je menjao mmwc dana 15.03.2007. u 09:10 GMT+1]
[ mmix @ 14.03.2007. 11:29 ] @
Citat:
IDeveloper: Za listu klasa u namespacu ....
Moze nesto ovako:


Ovo je lista klasa iz asemblija, ne iz namespace-a.

Citat:
sulja: Da li moze nekako da se dobije lista klasa iz odradjenog namespace-a ?
Konkretno imam u aplikaciji namespace gde stavljam svoje kontrole koje se koriste u aplikaciji, pa mi je sad potrebno da izlistam sve te kontrole koje su smestene u jednom namespace-u.


Namespace je 'virtuelni' koncept koji vise znaci programeru i kompajleru nego samom .NET-u. Sam .NET radi iskljucivo sa FQN imenima tipova koji u sebi sadrze puno ime klase. Dakle namespace je deo imena, ne kontejner gde klasa stoji. Ono sto ti hoces moze mnogo elegantnije da se uradi, napravi svoj atribut i nalepi ga na klase svojih kontrola, onda iskoristi varijaciju koda koji je IDeveloper okacio da lociras tipove koji imaju tvoj atribut i eto ti liste.

[ IDeveloper @ 14.03.2007. 11:39 ] @
@mmix Hvala na ispravci!!!
Ipak ovako treba! Zaboravio sam jeda uslov!

Code:

System.Collections.Generic.List<string> ImenaKlasa = new System.Collections.Generic.List<string>();
           System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
           Type[] tipovi = assembly.GetTypes();

           foreach (Type Tip in tipovi)
           {
               if (Tip.IsClass && Tip.Namespace == "TvojNameSpace") // Ovde treba uslov
               {
                   ImenaKlasa.Add(Tip.Name);
               }
           }

Pozdrav!!!

[Ovu poruku je menjao mmwc dana 15.03.2007. u 09:10 GMT+1]
[ IDeveloper @ 14.03.2007. 11:42 ] @
Naravno ako ne zelis da trazis po tekucem Assembly-ju vec po nekom drugom mozes da izvrsis male varijacije po kodu!
Tipa umesto GetExecutingAssembly() mozes sa LoadFrom() ili tako nesto!!!

[Ovu poruku je menjao mmwc dana 15.03.2007. u 09:10 GMT+1]