Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

AssemblyBuilder.Save-Methode: (String, PortableExecutableKinds, ImageFileMachine)

 

Veröffentlicht: Oktober 2016

Speichert diese dynamische Assembly auf dem Datenträger und gibt die Art des Codes in den ausführbaren Dateien der Assembly und der Zielplattform an.

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

public void Save(
	string assemblyFileName,
	PortableExecutableKinds portableExecutableKind,
	ImageFileMachine imageFileMachine
)

Parameter

assemblyFileName
Type: System.String

Der Dateiname der Assembly.

portableExecutableKind
Type: System.Reflection.PortableExecutableKinds

Eine bitweise Kombination der PortableExecutableKinds-Werte, die die Art des Codes angibt.

imageFileMachine
Type: System.Reflection.ImageFileMachine

Einer der ImageFileMachine-Werte, der die Zielplattform angibt.

Exception Condition
ArgumentException

Die Länge von assemblyFileName ist 0.

- oder -

In der Assembly sind mindestens zwei Modulressourcendateien mit demselben Namen vorhanden.

- oder -

Das Zielverzeichnis der Assembly ist ungültig.

- oder -

assemblyFileName ist kein einfacher Dateiname (enthält z. B. eine Verzeichnis- oder Laufwerkskomponente), oder in dieser Assembly wurden mehrere nicht verwaltete Ressourcen einschließlich einer Versionsinformationsressource definiert.

- oder -

Die CultureInfo-Zeichenfolge in AssemblyCultureAttribute ist keine gültige Zeichenfolge, und DefineVersionInfoResource wurde vor dem Aufruf dieser Methode aufgerufen.

ArgumentNullException

assemblyFileName ist null.

InvalidOperationException

Diese Assembly wurde bereits zuvor gespeichert.

- oder -

Diese Assembly hat Zugriff auf RunAssemblyBuilderAccess.

IOException

Beim Speichern tritt ein Ausgabefehler auf.

NotSupportedException

CreateType wurde für keinen der Typen in den Modulen der auf den Datenträger zu schreibenden Assembly aufgerufen.

Wenn imageFileMachine und portableExecutableKind nicht kompatibel sind, imageFileMachine hat Vorrang vor portableExecutableKind. Es werden keine Ausnahmen ausgelöst. Wenn Sie angeben, z. B. ImageFileMachine.I386 mit PortableExecutableKinds.PE32Plus, PortableExecutableKinds.PE32Plus wird ignoriert.

Diese Methode speichert alle nicht flüchtigen dynamischen Module in dieser dynamischen Assembly definiert. Flüchtige dynamische Module werden nicht gespeichert. Der Dateiname der Assembly kann den Namen eines Moduls identisch sein. Wenn dies der Fall ist, wird das Assemblymanifest innerhalb dieses Moduls gespeichert. assemblyFileName kann sich von den Namen aller innerhalb der Assembly enthaltenen Module unterscheiden. Wenn also die Assemblydatei nur das Assemblymanifest enthält.

Für jede ResourceWriter mithilfe DefineResource, diese Methode schreibt die RESOURCES-Datei und ruft Close auf den Stream zu schließen.

Die assemblyFileName muss ein einfacher Dateiname ohne Laufwerk oder ein Verzeichnis sein. Um eine Assembly in einem bestimmten Verzeichnis zu erstellen, verwenden Sie eines der DefineDynamicAssembly Methoden, die ein Argument für das Zielverzeichnis.

FileIOPermission

Write = true or Append = true is needed to save this assembly to the specified file name.

ReflectionPermission

when invoked late-bound through mechanisms such as M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]). Associated enumeration: F:System.Security.Permissions.ReflectionPermissionFlag.MemberAccess.

.NET Framework
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: