Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to get list of the classes in casual assembly
Message
From
12/03/2010 08:22:20
 
 
To
12/03/2010 07:34:41
Vladimir Zhuravlev
Institute of the Physics of Earth,Russia
Moscow Region, Russia
General information
Forum:
ASP.NET
Category:
Other
Miscellaneous
Thread ID:
01453908
Message ID:
01454141
Views:
45
>Gregory< what I have missed
>I have
>
> public string GetModInfo(string Assemblyname)
> {
> string vbTab = " ";
> var list = (from m in Assembly.Load(Assemblyname).GetModules() select m.GetTypes().Where(x => x.IsClass)).ToList();
> foreach (var className in list) { vbTab = vbTab + className.ToString();
> }
> return vbTab;
> }
>call it with like
>GetModInfo("System.Windows.Forms") from my class
>It tells to me - could not find assemby
>More long code with - {var assembly = Assembly.Load(assemblyName) ... works fine
>Sure, I have referencies to System.Data.Linq and System.Xml.Linq

Vlad,

Are you saying that GetModInfo() does not work but GetAssemblyClasses() works fine ?


Whether I use GetModInfo() or GetAssemblyClasses() I have the same error on "System.Windows.Forms"
		static void Main()
		{

			string assemblyName = "BaseTest";
			assemblyName = "System.Windows.Forms";

			var list = GetAssemblyClasses(assemblyName);
			//var list = GetModInfo(assemblyName);

			foreach (var className in list)
			{
				Console.WriteLine("{0} : {1}", className.IsClass ? "Class" : "Struct", className.FullName);
			}
			Console.ReadLine();

		}
		public static List<Type> GetModInfo(string assemblyName)
		{
			var list = (from m in Assembly.Load(assemblyName).GetModules() select m.GetTypes().Where(x => x.IsClass)).ToList();

			var theList = new List<Type>();
			foreach (var m in list)
				theList.AddRange(m);

			return theList;
		}

		public static List<Type> GetAssemblyClasses(string assemblyName)
		{
			var assembly = Assembly.Load(assemblyName);

			List<Type> classList = new List<Type>();


			foreach (var module in assembly.GetModules())
			{

				foreach (var type in module.GetTypes())
				{
					// only interested in classes or struct
					if (!type.IsClass ) // && !type.IsValueType)
						continue;

					classList.Add(type);
				}
			}

			return classList;
		}
Gregory
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform