AssemblyFlagsAttribute-Klasse
Gibt eine bitweise Kombination von AssemblyNameFlags-Flags für eine Assembly an. Diese dienen zur Beschreibung von Optionen für den JIT-Compiler (Just In Time) und geben an, ob die Assembly erneut zugewiesen werden kann und ob sie einen vollen bzw. einen mit Token versehenen öffentlichen Schlüssel besitzt. Diese Klasse kann nicht vererbt werden.
Namespace: System.Reflection
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<ComVisibleAttribute(True)> _
<AttributeUsageAttribute(AttributeTargets.Assembly, Inherited:=False)> _
Public NotInheritable Class AssemblyFlagsAttribute
Inherits Attribute
'Usage
Dim instance As AssemblyFlagsAttribute
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets.Assembly, Inherited=false)]
public sealed class AssemblyFlagsAttribute : Attribute
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets::Assembly, Inherited=false)]
public ref class AssemblyFlagsAttribute sealed : public Attribute
/** @attribute ComVisibleAttribute(true) */
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly, Inherited=false) */
public final class AssemblyFlagsAttribute extends Attribute
ComVisibleAttribute(true)
AttributeUsageAttribute(AttributeTargets.Assembly, Inherited=false)
public final class AssemblyFlagsAttribute extends Attribute
Hinweise
In der AssemblyNameFlags-Enumeration werden die Assemblycharakteristiken beschrieben, die mit diesem Attribut festgelegt werden können.
Verwenden Sie die System.Reflection.Assembly.GetName-Eigenschaft zum Abrufen eines AssemblyName-Objekts und dann die AssemblyName.Flags-Eigenschaft zum Abrufen eines AssemblyNameFlags-Werts, um auf die Flags zuzugreifen, die für eine Assembly angegeben wurden.
Um AssemblyNameFlags-Flags für eine dynamische Assembly anzugeben, legen Sie die AssemblyName.Flags-Eigenschaft des AssemblyName-Objekts fest, das an die System.AppDomain.DefineDynamicAssembly-Methode übergeben wird.
Beispiel
Im folgenden Codebeispiel wird die Anwendung der AssemblyFlagsAttribute-Klasse auf eine Assembly veranschaulicht, und es wird gezeigt, wie die Flags zur Laufzeit gelesen werden. In diesem Beispiel wird außerdem eine Instanz des Attributs erstellt, und die AssemblyFlags-Eigenschaft wird zum Anzeigen der Flags verwendet. Ein Beispiel zur Anwendung der AssemblyFlagsAttribute-Klasse auf eine dynamische Assembly finden Sie in der AssemblyName.Flags-Eigenschaft.
Imports System
Imports System.Reflection
' Specify a combination of AssemblyNameFlags for this
' assembly.
<Assembly:AssemblyFlagsAttribute( _
AssemblyNameFlags.EnableJITcompileOptimizer _
Or AssemblyNameFlags.Retargetable)>
Public Class Example
Public Shared Sub Main()
' Get the currently executing assembly, which is this
' assembly.
Dim thisAsm As Assembly = _
Assembly.GetExecutingAssembly()
' Get the AssemblyName for the currently executing
' assembly.
Dim thisAsmName As AssemblyName = thisAsm.GetName(False)
' Display the flags that were set for this assembly.
ListFlags(thisAsmName.Flags)
' Create an instance of AssemblyFlagsAttribute with the
' same combination of flags that was specified for this
' assembly. Note that PublicKey is included automatically
' for the assembly, but not for this instance of
' AssemblyFlagsAttribute.
Dim afa As New AssemblyFlagsAttribute( _
AssemblyNameFlags.EnableJITcompileOptimizer _
Or AssemblyNameFlags.Retargetable)
' Get the flags. The property returns an integer, so
' the return value must be cast to AssemblyNameFlags.
Dim anf As AssemblyNameFlags = _
CType(afa.AssemblyFlags, AssemblyNameFlags)
' Display the flags.
Console.WriteLine()
ListFlags(anf)
End Sub
Private Shared Sub ListFlags(ByVal anf As AssemblyNameFlags)
If anf = AssemblyNameFlags.None Then
Console.WriteLine("AssemblyNameFlags.None")
Else
If 0 <> (anf And AssemblyNameFlags.Retargetable) Then _
Console.WriteLine("AssemblyNameFlags.Retargetable")
If 0 <> (anf And AssemblyNameFlags.PublicKey) Then _
Console.WriteLine("AssemblyNameFlags.PublicKey")
If 0 <> (anf And AssemblyNameFlags.EnableJITcompileOptimizer) Then _
Console.WriteLine("AssemblyNameFlags.EnableJITcompileOptimizer")
If 0 <> (anf And AssemblyNameFlags.EnableJITcompileTracking) Then _
Console.WriteLine("AssemblyNameFlags.EnableJITcompileTracking")
End If
End SUb
End Class
' This code example produces the following output:
'
'AssemblyNameFlags.Retargetable
'AssemblyNameFlags.PublicKey
'AssemblyNameFlags.EnableJITcompileOptimizer
'
'AssemblyNameFlags.Retargetable
'AssemblyNameFlags.EnableJITcompileOptimizer
using System;
using System.Reflection;
// Specify a combination of AssemblyNameFlags for this
// assembly.
[assembly:AssemblyFlagsAttribute(
AssemblyNameFlags.EnableJITcompileOptimizer |
AssemblyNameFlags.Retargetable)]
public class Example
{
public static void Main()
{
// Get the currently executing assembly, which is this
// assembly.
Assembly thisAsm = Assembly.GetExecutingAssembly();
// Get the AssemblyName for the currently executing
// assembly.
AssemblyName thisAsmName = thisAsm.GetName(false);
// Display the flags that were set for this assembly.
ListFlags(thisAsmName.Flags);
// Create an instance of AssemblyFlagsAttribute with the
// same combination of flags that was specified for this
// assembly. Note that PublicKey is included automatically
// for the assembly, but not for this instance of
// AssemblyFlagsAttribute.
AssemblyFlagsAttribute afa = new AssemblyFlagsAttribute(
AssemblyNameFlags.EnableJITcompileOptimizer |
AssemblyNameFlags.Retargetable);
// Get the flags. The property returns an integer, so
// the return value must be cast to AssemblyNameFlags.
AssemblyNameFlags anf = (AssemblyNameFlags) afa.AssemblyFlags;
// Display the flags.
Console.WriteLine();
ListFlags(anf);
}
private static void ListFlags(AssemblyNameFlags anf)
{
if (anf == AssemblyNameFlags.None)
{
Console.WriteLine("AssemblyNameFlags.None");
}
else
{
if (0!=(anf & AssemblyNameFlags.Retargetable))
Console.WriteLine("AssemblyNameFlags.Retargetable");
if (0!=(anf & AssemblyNameFlags.PublicKey))
Console.WriteLine("AssemblyNameFlags.PublicKey");
if (0!=(anf & AssemblyNameFlags.EnableJITcompileOptimizer))
Console.WriteLine("AssemblyNameFlags.EnableJITcompileOptimizer");
if (0!=(anf & AssemblyNameFlags.EnableJITcompileTracking))
Console.WriteLine("AssemblyNameFlags.EnableJITcompileTracking");
}
}
}
/* This code example produces the following output:
AssemblyNameFlags.Retargetable
AssemblyNameFlags.PublicKey
AssemblyNameFlags.EnableJITcompileOptimizer
AssemblyNameFlags.Retargetable
AssemblyNameFlags.EnableJITcompileOptimizer
*/
using namespace System;
using namespace System::Reflection;
// Specify a combination of AssemblyNameFlags for this
// assembly.
[assembly:AssemblyFlagsAttribute(
AssemblyNameFlags::EnableJITcompileOptimizer
| AssemblyNameFlags::Retargetable)];
public ref class Example
{
public:
static void Main()
{
// Get the currently executing assembly, which is this
// assembly.
Assembly^ thisAsm = Assembly::GetExecutingAssembly();
// Get the AssemblyName for the currently executing
// assembly.
AssemblyName^ thisAsmName = thisAsm->GetName( false );
// Display the flags that were set for this assembly.
ListFlags( thisAsmName->Flags );
// Create an instance of AssemblyFlagsAttribute with the
// same combination of flags that was specified for this
// assembly. Note that PublicKey is included automatically
// for the assembly, but not for this instance of
// AssemblyFlagsAttribute.
AssemblyFlagsAttribute^ afa = gcnew AssemblyFlagsAttribute(
static_cast<AssemblyNameFlags> (AssemblyNameFlags::EnableJITcompileOptimizer
| AssemblyNameFlags::Retargetable) );
// Get the flags. The property returns an integer, so
// the return value must be cast to AssemblyNameFlags.
AssemblyNameFlags anf = static_cast<AssemblyNameFlags>(afa->AssemblyFlags);
// Display the flags.
Console::WriteLine();
ListFlags( anf );
}
private:
static void ListFlags( AssemblyNameFlags anf )
{
if ( anf == AssemblyNameFlags::None )
{
Console::WriteLine( L"AssemblyNameFlags.None" );
}
else
{
if ( 0 != static_cast<Int32>(anf & AssemblyNameFlags::Retargetable) )
Console::WriteLine( L"AssemblyNameFlags.Retargetable" );
if ( 0 != static_cast<Int32>(anf & AssemblyNameFlags::PublicKey) )
Console::WriteLine( L"AssemblyNameFlags.PublicKey" );
if ( 0 != static_cast<Int32>(anf & AssemblyNameFlags::EnableJITcompileOptimizer) )
Console::WriteLine( L"AssemblyNameFlags.EnableJITcompileOptimizer" );
if ( 0 != static_cast<Int32>(anf & AssemblyNameFlags::EnableJITcompileTracking) )
Console::WriteLine( L"AssemblyNameFlags.EnableJITcompileTracking" );
}
}
};
int main()
{
Example::Main();
}
/* This code example produces the following output:
AssemblyNameFlags.Retargetable
AssemblyNameFlags.PublicKey
AssemblyNameFlags.EnableJITcompileOptimizer
AssemblyNameFlags.Retargetable
AssemblyNameFlags.EnableJITcompileOptimizer
*/
Vererbungshierarchie
System.Object
System.Attribute
System.Reflection.AssemblyFlagsAttribute
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
AssemblyFlagsAttribute-Member
System.Reflection-Namespace
AssemblyNameFlags
System.Reflection.Assembly.GetName
AssemblyName.Flags