Assembly Class

July 28, 2014

Represents an assembly, which is a reusable, versionable, and self-describing building block of a common language runtime application.

System.Object
  System.Reflection.Assembly

Namespace:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public abstract class Assembly : ICustomAttributeProvider

The Assembly type exposes the following members.

  NameDescription
Public propertyCustomAttributesGets a collection that contains this assembly's custom attributes.
Public propertyDefinedTypesGets a collection of the types defined in this assembly.
Public propertyEntryPointGets the entry point of this assembly.
Public propertyExportedTypesGets a collection of the public types defined in this assembly that are visible outside the assembly.
Public propertyFullNameGets the display name of the assembly.
Public propertyImageRuntimeVersionGets a string representing the version of the common language runtime (CLR) saved in the file containing the manifest.
Public propertyIsDynamicGets a value that indicates whether the current assembly was generated dynamically in the current process by using reflection emit.
Public propertyManifestModuleGets the module that contains the manifest for the current assembly.
Public propertyModulesGets a collection that contains the modules in this assembly.
Top

  NameDescription
Public methodCreateInstanceLocates the specified type from this assembly and creates an instance of it using the system activator, using case-sensitive search.
Public methodEqualsDetermines whether this assembly and the specified object are equal. (Overrides Object.Equals(Object).)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodStatic memberGetCallingAssemblyReturns the Assembly of the method that invoked the currently executing method.
Public methodGetCustomAttributes(Boolean)Gets all the custom attributes for this assembly.
Public methodGetCustomAttributes(Type, Boolean)Gets the custom attributes for this assembly as specified by type.
Public methodStatic memberGetExecutingAssemblyGets the assembly that contains the code that is currently executing.
Public methodGetExportedTypesGets the types defined in this assembly that are visible outside the assembly.
Public methodGetHashCodeReturns the hash code for this instance. (Overrides Object.GetHashCode().)
Public methodGetManifestResourceInfoReturns information about how the given resource has been persisted.
Public methodGetManifestResourceNamesReturns the names of all the resources in this assembly.
Public methodGetManifestResourceStream(String)Loads the specified manifest resource from this assembly.
Public methodGetManifestResourceStream(Type, String)Loads the specified manifest resource, scoped by the namespace of the specified type, from this assembly.
Public methodGetModulesGets all the modules that are part of this assembly.
Public methodGetName()Security Critical. Gets an AssemblyName for this assembly.
Public methodGetName(Boolean)Security Critical. Gets an AssemblyName for this assembly, setting the codebase as specified by copiedName.
Public methodGetSatelliteAssembly(CultureInfo)Gets the satellite assembly for the specified culture.
Public methodGetSatelliteAssembly(CultureInfo, Version)Gets the specified version of the satellite assembly for the specified culture.
Public methodGetType()Gets the Type of the current instance. (Inherited from Object.)
Public methodGetType(String)Gets the Type object with the specified name in the assembly instance.
Public methodGetType(String, Boolean)Gets the Type object with the specified name in the assembly instance and optionally throws an exception if the type is not found.
Public methodGetTypesGets the types defined in this assembly.
Public methodIsDefinedIndicates whether or not a specified attribute has been applied to the assembly.
Public methodStatic memberLoad(AssemblyName)Security Critical. Loads an assembly given its AssemblyName.
Public methodStatic memberLoad(String)Loads an assembly given the long form of its name.
Public methodStatic memberLoadFromSecurity Critical. Loads an assembly given its file name or path.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns the full name of the assembly, also known as the display name. (Overrides Object.ToString().)
Top

  NameDescription
Public Extension MethodGetCustomAttribute(Type)Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified assembly. (Defined by CustomAttributeExtensions.)
Public Extension MethodGetCustomAttribute<T>()Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified assembly. (Defined by CustomAttributeExtensions.)
Public Extension MethodGetCustomAttributes()Overloaded. Retrieves a collection of custom attributes that are applied to a specified assembly. (Defined by CustomAttributeExtensions.)
Public Extension MethodGetCustomAttributes(Type)Overloaded. Retrieves a collection of custom attributes of a specified type that are applied to a specified assembly. (Defined by CustomAttributeExtensions.)
Public Extension MethodGetCustomAttributes<T>()Overloaded. Retrieves a collection of custom attributes of a specified type that are applied to a specified assembly. (Defined by CustomAttributeExtensions.)
Public Extension MethodIsDefinedIndicates whether custom attributes of a specified type are applied to a specified assembly. (Defined by CustomAttributeExtensions.)
Top

Use the Assembly class to load assemblies, to explore the metadata and constituent parts of assemblies, to discover the types contained in assemblies, and to create instances of those types.

To load assemblies dynamically, the Assembly class provides the static Load(String) method overload (Shared method overload in Visual Basic). Assemblies are loaded into the Windows Phone application domain. Other overloads can be called only by the trusted assemblies in the .NET Framework.

To get an Assembly object for the currently executing assembly, use the GetExecutingAssembly method.

Many members of the Assembly class provide information about an assembly. For example:

The GetTypes method lists all the types in the assembly. The GetExportedTypes method lists the types that are visible to callers outside the assembly. The GetType method can be used to search for a particular type in the assembly. The CreateInstance method can be used to search for and create instances of types in the assembly.

The following code example shows how to obtain the currently executing assembly, create an instance of a type contained in that assembly, and invoke one of the type's methods with late binding. For this purpose, the code example defines a class named Example, with a method named SampleMethod. The constructor of the class accepts an integer, which is used to compute the return value of the method.

The code example also demonstrates the use of the GetName method to obtain an AssemblyName object that can be used to parse the full name of the assembly. The example displays the version number of the assembly and the EntryPoint property.


using System;
using System.Reflection;
using System.Security.Permissions;

[assembly: AssemblyVersionAttribute("1.0.2000.0")]

public class Example
{
   private static System.Windows.Controls.TextBlock outputBlock;
   private int factor;

   public Example() : this(42) {}
   public Example(int f)
   {
      factor = f;
   }

   public int SampleMethod(int x)
   {
      outputBlock.Text += String.Format("\nExample.SampleMethod({0}) executes.", x) + "\n";
      return x * factor;
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {

      Example.outputBlock = outputBlock;
      Assembly assem = Assembly.GetExecutingAssembly();

      outputBlock.Text += "Assembly Full Name:" + "\n";
      outputBlock.Text += assem.FullName + "\n";

      // Create an object from the assembly, using the default constructor.
      Object o = assem.CreateInstance("Example");

      // Make a late-bound call to an instance method of the object.    
      MethodInfo m = assem.GetType("Example").GetMethod("SampleMethod");
      Object ret = m.Invoke(o, new Object[] { 42 });
      outputBlock.Text += String.Format("SampleMethod returned {0}.\n", ret);

      outputBlock.Text += "\nAssembly entry point:\n";
      MethodInfo entry = assem.EntryPoint;
      if (entry == null)
      {
         outputBlock.Text += "No entry point defined for the assembly.\n";
      }
      else
      {
         outputBlock.Text += entry.ToString() + "\n";
      }
   }
}

/* This code example produces output similar to the following:

Assembly Full Name:
source, Version=1.0.2000.0, Culture=neutral, PublicKeyToken=null

Example.SampleMethod(42) executes.
SampleMethod returned 1784.

Assembly entry point:
No entry point defined for the assembly.
 */


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

This type is thread safe.

Show:
© 2014 Microsoft