public void Snippet11() { Console.WriteLine("SNIPPET11:"); // <Snippet11> Assembly SampleAssembly; SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll"); // Obtain a reference to a method known to exist in assembly. MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1"); // Obtain a reference to the parameters collection of the MethodInfo instance. ParameterInfo[] Params = Method.GetParameters(); // Display information about method parameters. // Param = sParam1 // Type = System.String // Position = 0 // Optional=False foreach (ParameterInfo Param in Params) { Console.WriteLine("Param=" + Param.Name.ToString()); Console.WriteLine(" Type=" + Param.ParameterType.ToString()); Console.WriteLine(" Position=" + Param.Position.ToString()); Console.WriteLine(" Optional=" + Param.IsOptional.ToString()); } // </Snippet11> Console.ReadLine(); }
public void Snippet9() { Console.WriteLine("SNIPPET9:"); // <Snippet9> Assembly SampleAssembly; SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll"); // Obtain a reference to the first class contained in the assembly. Type oType = SampleAssembly.GetTypes()[0]; // Obtain a reference to the public properties of the type. PropertyInfo[] Props = oType.GetProperties(); // Display information about public properties of assembly type. // Prop = Prop1 // DeclaringType = Sample.Assembly.Class1 // Type = System.String // Readable = True // Writable = False foreach (PropertyInfo Prop in Props) { Console.WriteLine("Prop=" + Prop.Name.ToString()); Console.WriteLine(" DeclaringType=" + Prop.DeclaringType.ToString()); Console.WriteLine(" Type=" + Prop.PropertyType.ToString()); Console.WriteLine(" Readable=" + Prop.CanRead.ToString()); Console.WriteLine(" Writable=" + Prop.CanWrite.ToString()); } // </Snippet9> Console.WriteLine(); }
public static void Main(string[] args) { try { Assembly SampleAssembly; SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll"); // Obtain a reference to a method known to exist in assembly. MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1"); // Obtain a reference to the parameters collection of the MethodInfo instance. ParameterInfo[] Params = Method.GetParameters(); // Display information about method parameters. // Param = sParam1 // Type = System.String // Position = 0 // Optional=False foreach (ParameterInfo Param in Params) { Console.WriteLine("Param=" + Param.Name.ToString()); Console.WriteLine(" Type=" + Param.ParameterType.ToString()); Console.WriteLine(" Position=" + Param.Position.ToString()); Console.WriteLine(" Optional=" + Param.IsOptional.ToString()); } } catch (Exception exc) { Console.WriteLine(exc); } finally { Console.ReadKey(true); } }
public void Snippet8() { Console.WriteLine("SNIPPET8:"); // <Snippet8> Assembly SampleAssembly; SampleAssembly = Assembly.Load("System.Data"); Type[] Types = SampleAssembly.GetTypes(); foreach (Type oType in Types) { Console.WriteLine(oType.Name.ToString()); } // </Snippet8> Console.WriteLine(); }
public void Snippet10() { Console.WriteLine("SNIPPET10:"); // <Snippet10> Assembly SampleAssembly; SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll"); MethodInfo[] Methods = SampleAssembly.GetTypes()[0].GetMethods(); // Obtain a reference to the method members foreach (MethodInfo Method in Methods) { Console.WriteLine("Method Name=" + Method.Name.ToString()); } // </Snippet10> Console.WriteLine(); }
private void Button_Click_1(object sender, RoutedEventArgs e) { if (lab1.Content != "") { items = new ObservableCollection <Item>(); string filename; string directory = lab1.Content.ToString(); string[] files = Directory.GetFiles(directory, "*.dll", SearchOption.AllDirectories); Assembly SampleAssembly; foreach (string file in files) { filename = System.IO.Path.GetFileName(file); Item item = new Item { Name = filename, Items = new ObservableCollection <Item>() }; SampleAssembly = Assembly.LoadFrom(file); foreach (Type oType in SampleAssembly.GetTypes()) { Item item2 = new Item { Name = oType.Name, Items = new ObservableCollection <Item>() }; foreach (MethodInfo members in oType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.NonPublic)) { if (members.IsFamily || members.IsPublic) { item2.Items.Add(new Item { Name = members.Name }); } } item.Items.Add(item2); } items.Add(item); } viewTree.ItemsSource = items; } }
public static void ExtractFunctionsFromDll() { Assembly SampleAssembly; //SampleAssembly = Assembly.LoadFrom("BlingResource.dll"); //SampleAssembly = Assembly.LoadFrom("SatoriFunctoids.dll"); var dllBytes = File.ReadAllBytes("SatoriFunctoids.dll"); SampleAssembly = Assembly.Load(dllBytes); var types = SampleAssembly.GetTypes().ToList(); using (var wr = new StreamWriter("methodInfo1.txt")) { foreach (var type in types) { var methods = type.GetMethods().ToList(); methods.ForEach(t => { string output = string.Empty; //Console.WriteLine(t.Name); var customizedAttributes = t.CustomAttributes.ToList(); if (customizedAttributes.Count != 0) { var attributeNames = customizedAttributes.Select(a => a.AttributeType.Name); if (attributeNames.Contains("FunctoidAttribute")) { output += t.ReturnType + " "; output += t.Name + " ("; var parammeters = t.GetParameters().ToList(); parammeters.ForEach(k => { output += k.ParameterType + " " + k.Name + ", "; //Console.WriteLine("type: {0}, value: {1}", k.ParameterType, k.Name); }); if (parammeters.Count != 0) { output = output.Substring(0, output.Length - 2); } output += ")"; output = output.Replace("System.Collections.Generic.", ""); output = output.Replace("System.", ""); output = output.Replace("`1[", "<"); output = output.Replace("`2[", "<"); output = output.Replace("]", ">"); output = output.Replace("[>", "[]"); Regex regex = new Regex("Nullable<(.*?)>"); var v = regex.Match(output); string s = v.Groups[1].ToString(); Console.WriteLine(s); output = output.Replace($"Nullable<{s}>", $"{s}?"); output = output.Replace("Nullable<", ""); Console.WriteLine(output); wr.WriteLine(output); } } }); } } //// Obtain a reference to a method known to exist in assembly. //MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1"); //// Obtain a reference to the parameters collection of the MethodInfo instance. //ParameterInfo[] Params = Method.GetParameters(); //// Display information about method parameters. //// Param = sParam1 //// Type = System.String //// Position = 0 //// Optional=False //foreach (ParameterInfo Param in Params) //{ // Console.WriteLine("Param=" + Param.Name.ToString()); // Console.WriteLine(" Type=" + Param.ParameterType.ToString()); // Console.WriteLine(" Position=" + Param.Position.ToString()); // Console.WriteLine(" Optional=" + Param.IsOptional.ToString()); //} }