Csharp/CSharp Tutorial/Assembly/Assembly Properties
Содержание
- 1 Add information for AssemblyCulture and AssemblyVersion
- 2 Assembly.GetCallingAssembly()
- 3 Assembly.GetCallingAssembly() in a Thread
- 4 Assembly.GetEntryAssembly()
- 5 Assembly.GetExportedTypes
- 6 Get an external assembly
- 7 Get Entry Assembly
- 8 Get Evidence from Assembly
- 9 Get the version object for current assembly
- 10 List all current Assemblies
- 11 Load the System.Data assembly using a fully qualified display name
Add information for AssemblyCulture and AssemblyVersion
<source lang="csharp">using System; using System.Reflection; [assembly:AssemblyCulture("")] [assembly:AssemblyVersion("1.1.0.5")]
class MainClass {
public static void Main() { Console.WriteLine("Welcome"); }
}</source>
Welcome
Assembly.GetCallingAssembly()
<source lang="csharp">using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Reflection; using System.Reflection.Emit; public class MainClass {
public static void Main() { Assembly a3 = Assembly.GetCallingAssembly(); Console.WriteLine(a3.FullName); }
}</source>
main, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Assembly.GetCallingAssembly() in a Thread
<source lang="csharp">using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Reflection; using System.Reflection.Emit; public class MainClass {
public static void Main() { ThreadPool.QueueUserWorkItem(delegate { Console.WriteLine(Assembly.GetCallingAssembly().FullName); }); Thread.Sleep(100); }
}</source>
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Assembly.GetEntryAssembly()
<source lang="csharp">using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Reflection; using System.Reflection.Emit; public class MainClass {
public static void Main() { Assembly a2 = Assembly.GetEntryAssembly(); Console.WriteLine(a2.FullName); }
}</source>
main, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Assembly.GetExportedTypes
<source lang="csharp">using System; using System.Reflection; public class MainClass {
static void Main(string[] args) { Assembly XMLAssembly; Type[] XMLTypes; XMLAssembly = Assembly.Load("System.Xml, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"); XMLTypes = XMLAssembly.GetExportedTypes(); foreach(Type XMLType in XMLTypes) { object NewObject; Console.Write(XMLType.ToString()); NewObject = XMLAssembly.CreateInstance(XMLType.ToString()); if(NewObject != null) Console.WriteLine(" - Creation successful"); else Console.WriteLine(" - CREATION ERROR"); } }
}</source>
Get an external assembly
<source lang="csharp">using System; using System.Reflection; class MainClass {
public static void Main() { AssemblyName anm = AssemblyName.GetAssemblyName("c:\\winnt\\microsoft.net\\framework\\v1.0.3705\\mscorlib.dll"); Console.WriteLine(anm.Version.ToString()); }
}</source>
Get Entry Assembly
<source lang="csharp">using System; using System.Reflection; using System; using System.Reflection; public class MainClass {
static void Main(string[] args) { Assembly EntryAssembly; EntryAssembly = Assembly.GetEntryAssembly(); if(EntryAssembly.EntryPoint == null) Console.WriteLine("The assembly has no entry point."); else Console.WriteLine(EntryAssembly.EntryPoint.ToString()); }
}</source>
Get Evidence from Assembly
<source lang="csharp">using System; using System.Reflection; using System.Collections; using System.Security.Policy; public class MainClass {
public static void Main(string[] args) { Assembly a = Assembly.LoadFrom(args[0]); Evidence e = a.Evidence; IEnumerator x = e.GetHostEnumerator(); Console.WriteLine("HOST EVIDENCE COLLECTION:"); while (x.MoveNext()) { Console.WriteLine(x.Current.ToString()); } }
}</source>
Get the version object for current assembly
<source lang="csharp">using System; using System.Reflection; [assembly:AssemblyVersionAttribute("1.2.3.4")] [assembly:AssemblyTitleAttribute("Example")] class MainClass {
public static void Main() { Version v = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; Console.WriteLine(v.ToString()); Console.WriteLine(v.Major + "." + v.Minor + "." + v.Build + "." + v.Revision); }
}</source>
1.2.3.4 1.2.3.4
List all current Assemblies
<source lang="csharp">using System; using System.Reflection; using System.Globalization; class MainClass {
public static void Main(){ Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); foreach (Assembly a in assemblies) { Console.WriteLine(a.GetName()); } }
}</source>
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 main, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Load the System.Data assembly using a fully qualified display name
<source lang="csharp">using System; using System.Reflection; using System.Globalization; class MainClass {
public static void Main() { string name1 = "System.Data,Version=2.0.0.0," + "Culture=neutral,PublicKeyToken=b77a5c561934e089"; Assembly a1 = Assembly.Load(name1); }
}</source>