AssemblyName Konstruktorok
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Inicializálja a AssemblyName osztály új példányát.
Túlterhelések
| Name | Description |
|---|---|
| AssemblyName() |
Inicializálja a AssemblyName osztály új példányát. |
| AssemblyName(String) |
Inicializálja az osztály új példányát AssemblyName a megadott megjelenítendő névvel. |
AssemblyName()
Inicializálja a AssemblyName osztály új példányát.
public:
AssemblyName();
public AssemblyName();
Public Sub New ()
Példák
Az alábbi példa létrehoz egy dinamikus szerelvényt, amelyet elnevez MyAssembly.exe , és menti a merevlemezre. A példa futtatása után a Ildasm.exe (IL Disassembler) használatával megvizsgálhatja a szerelvény metaadatait.
using System;
using System.Reflection;
using System.Threading;
using System.Reflection.Emit;
public class AssemblyName_Constructor
{
public static void MakeAssembly(AssemblyName myAssemblyName, string fileName)
{
// Get the assembly builder from the application domain associated with the current thread.
AssemblyBuilder myAssemblyBuilder = Thread.GetDomain().DefineDynamicAssembly(myAssemblyName, AssemblyBuilderAccess.RunAndSave);
// Create a dynamic module in the assembly.
ModuleBuilder myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("MyModule", fileName);
// Create a type in the module.
TypeBuilder myTypeBuilder = myModuleBuilder.DefineType("MyType");
// Create a method called 'Main'.
MethodBuilder myMethodBuilder = myTypeBuilder.DefineMethod("Main", MethodAttributes.Public | MethodAttributes.HideBySig |
MethodAttributes.Static, typeof(void), null);
// Get the Intermediate Language generator for the method.
ILGenerator myILGenerator = myMethodBuilder.GetILGenerator();
// Use the utility method to generate the IL instructions that print a string to the console.
myILGenerator.EmitWriteLine("Hello World!");
// Generate the 'ret' IL instruction.
myILGenerator.Emit(OpCodes.Ret);
// End the creation of the type.
myTypeBuilder.CreateType();
// Set the method with name 'Main' as the entry point in the assembly.
myAssemblyBuilder.SetEntryPoint(myMethodBuilder);
myAssemblyBuilder.Save(fileName);
}
public static void Main()
{
// Create a dynamic assembly with name 'MyAssembly' and build version '1.0.0.2001'.
AssemblyName myAssemblyName = new AssemblyName();
myAssemblyName.Name = "MyAssembly";
myAssemblyName.Version = new Version("1.0.0.2001");
MakeAssembly(myAssemblyName, "MyAssembly.exe");
// Get all the assemblies currently loaded in the application domain.
Assembly[] myAssemblies = Thread.GetDomain().GetAssemblies();
// Get the dynamic assembly named 'MyAssembly'.
Assembly myAssembly = null;
for(int i = 0; i < myAssemblies.Length; i++)
{
if(String.Compare(myAssemblies[i].GetName().Name, "MyAssembly") == 0)
myAssembly = myAssemblies[i];
}
if(myAssembly != null)
{
Console.WriteLine("\nDisplaying the assembly name\n");
Console.WriteLine(myAssembly);
}
}
}
Imports System.Reflection
Imports System.Threading
Imports System.Reflection.Emit
Public Class AssemblyName_Constructor
Public Shared Sub MakeAssembly(myAssemblyName As AssemblyName, fileName As String)
' Get the assembly builder from the application domain associated with the current thread.
Dim myAssemblyBuilder As AssemblyBuilder = Thread.GetDomain().DefineDynamicAssembly(myAssemblyName, AssemblyBuilderAccess.RunAndSave)
' Create a dynamic module in the assembly.
Dim myModuleBuilder As ModuleBuilder = myAssemblyBuilder.DefineDynamicModule("MyModule", fileName)
' Create a type in the module.
Dim myTypeBuilder As TypeBuilder = myModuleBuilder.DefineType("MyType")
' Create a method called 'Main'.
Dim myMethodBuilder As MethodBuilder = myTypeBuilder.DefineMethod("Main", MethodAttributes.Public Or MethodAttributes.HideBySig Or MethodAttributes.Static, GetType(object), Nothing)
Dim myILGenerator As ILGenerator = myMethodBuilder.GetILGenerator()
' Use the utility method to generate the IL instructions that print a string to the console.
myILGenerator.EmitWriteLine("Hello World!")
' Generate the 'ret' IL instruction.
myILGenerator.Emit(OpCodes.Ret)
' End the creation of the type.
myTypeBuilder.CreateType()
' Set the method with name 'Main' as the entry point in the assembly.
myAssemblyBuilder.SetEntryPoint(myMethodBuilder)
myAssemblyBuilder.Save(fileName)
End Sub
Public Shared Sub Main()
' Create a dynamic assembly with name 'MyAssembly' and build version '1.0.0.2001'.
Dim myAssemblyName As New AssemblyName()
myAssemblyName.Name = "MyAssembly"
myAssemblyName.Version = New Version("1.0.0.2001")
MakeAssembly(myAssemblyName, "MyAssembly.exe")
' Get all the assemblies currently loaded in the application domain.
Dim myAssemblies As [Assembly]() = Thread.GetDomain().GetAssemblies()
' Get the dynamic assembly named 'MyAssembly'.
Dim myAssembly As [Assembly] = Nothing
Dim i As Integer
For i = 0 To myAssemblies.Length - 1
If [String].Compare(myAssemblies(i).GetName().Name, "MyAssembly") = 0 Then
myAssembly = myAssemblies(i)
End If
Next i
If Not (myAssembly Is Nothing) Then
Console.WriteLine(ControlChars.Cr + "Displaying the assembly name" + ControlChars.Cr)
Console.WriteLine(myAssembly)
End If
End Sub
End Class
A következőre érvényes:
AssemblyName(String)
Inicializálja az osztály új példányát AssemblyName a megadott megjelenítendő névvel.
public:
AssemblyName(System::String ^ assemblyName);
public AssemblyName(string assemblyName);
new System.Reflection.AssemblyName : string -> System.Reflection.AssemblyName
Public Sub New (assemblyName As String)
Paraméterek
- assemblyName
- String
A szerelvény megjelenítendő neve a tulajdonság által visszaadott módon FullName .
Kivételek
assemblyName az null.
assemblyName egy nulla hosszúságú sztring.
A hivatkozott szerelvény nem található, vagy nem tölthető be.
Megjegyzés: Az .NET Windows Áruházbeli alkalmazások vagy a Portable Class Library esetében inkább az alaposztály kivételét IOException.
Példák
Az alábbi példa megjelenítendő névből hoz létre egy példányt AssemblyName . A megjelenítendő név egyes elemei az objektum tulajdonságaiként jelennek meg a AssemblyName konzolon.
using System;
using System.Reflection;
public class AssemblyNameDemo
{
public static void Main()
{
// Create an AssemblyName, specifying the display name, and then
// print the properties.
AssemblyName myAssemblyName =
new AssemblyName("Example, Version=1.0.0.2001, Culture=en-US, PublicKeyToken=null");
Console.WriteLine("Name: {0}", myAssemblyName.Name);
Console.WriteLine("Version: {0}", myAssemblyName.Version);
Console.WriteLine("CultureInfo: {0}", myAssemblyName.CultureInfo);
Console.WriteLine("FullName: {0}", myAssemblyName.FullName);
}
}
/* This code example produces output similar to the following:
Name: Example
Version: 1.0.0.2001
CultureInfo: en-US
FullName: Example, Version=1.0.0.2001, Culture=en-US, PublicKeyToken=null
*/
Imports System.Reflection
Public Class AssemblyNameDemo
Public Shared Sub Main()
' Create an AssemblyName, specifying the display name, and then
' print the properties.
Dim myAssemblyName As New _
AssemblyName("Example, Version=1.0.0.2001, Culture=en-US, PublicKeyToken=null")
Console.WriteLine("Name: {0}", myAssemblyName.Name)
Console.WriteLine("Version: {0}", myAssemblyName.Version)
Console.WriteLine("CultureInfo: {0}", myAssemblyName.CultureInfo)
Console.WriteLine("FullName: {0}", myAssemblyName.FullName)
End Sub
End Class
' This code example produces output similar to the following:
'
'Name: Example
'Version: 1.0.0.2001
'CultureInfo: en-US
'FullName: Example, Version=1.0.0.2001, Culture=en-US, PublicKeyToken=null
Megjegyzések
A rendszer elemzi a megadott assemblyName értéket, és az új AssemblyName megfelelő mezői inicializálva lesznek a megjelenített név értékeivel. Ez a megjelenítendő nevek elemzésének ajánlott módja. Nem ajánlott saját kódot írni a megjelenítendő nevek elemzéséhez.