Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch
Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

AssemblyBuilder-Klasse

Stellt einen Container zum Erstellen einer Assembly aus einem oder mehreren virtuellen Pfaden in einem ASP.NET-Projekt bereit.

System.Object
  System.Web.Compilation.AssemblyBuilder

Namespace:  System.Web.Compilation
Assembly:  System.Web (in System.Web.dll)

public class AssemblyBuilder

Der AssemblyBuilder-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche EigenschaftCodeDomProviderRuft den Compiler auf, der zum Erstellen von Quellcode in einer Assembly verwendet wird.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeAddAssemblyReferenceFügt eine Assembly hinzu, auf die für eine Datei generierter Quellcode verweist.
Öffentliche MethodeAddCodeCompileUnitFügt der Assembly Quellcode in Form eines CodeDOM-Diagramms hinzu.
Öffentliche MethodeCreateCodeFileErmöglicht es einem Buildanbieter, eine temporäre Quelldatei zu erstellen und die Quelldatei in die Assemblykompilierung einzubeziehen.
Öffentliche MethodeCreateEmbeddedResourceErmöglicht es einem Buildanbieter, eine Ressourcendatei zu erstellen und in die Assemblykompilierung einzubeziehen.
Öffentliche MethodeEquals(Object) Bestimmt, ob das übergegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeGenerateTypeFactoryFügt eine schnelle Objektfactoryvorlage für einen Typ in die kompilierte Assembly ein.
Öffentliche MethodeGetHashCodeFungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche MethodeGetTempFilePhysicalPathGeneriert einen Pfad für eine temporäre Datei.
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

Instanzen der AssemblyBuilder-Klasse werden mit Methoden der BuildProvider-Klasse verwendet, um eine oder mehrere Dateien in einer kompilierten Assembly zu erstellen.

Die BuildProvider-Klasse definiert für einzelne Dateien Buildfunktionen, und die AssemblyBuilder-Klasse kombiniert den Quellcode, den die einzelnen BuildProvider-Instanzen beitragen, zu einer Assembly. Beim Erstellen einer Assembly aus einer oder mehreren Dateien übergibt die ASP.NET-Buildumgebung ein AssemblyBuilder-Objekt an die BuildProvider-Methoden, sodass die einzelnen BuildProvider-Instanzen Quellcode für die jeweilige Datei zur übergeordneten Assembly beitragen können.

Die ASP.NET-Buildumgebung bestimmt anhand der BuildProvider.CodeCompilerType-Eigenschaft die Sprache und den Compiler, die von den Dateien im Projekt benötigt werden. Die Buildumgebung gruppiert Dateien nach ihren Compilereinstellungen und erstellt eine Assembly aus Dateien, die denselben Compiler benötigen.

Die CodeDomProvider-Eigenschaft gibt die CodeDomProvider-Implementierung an, die von der ASP.NET-Buildumgebung verwendet wird, um eine Assembly aus dem von den einzelnen BuildProvider-Implementierungen generierten Quellcode zu kompilieren.

Mit der AddCodeCompileUnit-Methode trägt ein BuildProvider-Objekt Quellcode in Form eines CodeDOM-Diagramms bei. Mit der CreateCodeFile-Methode trägt ein BuildProvider-Objekt hingegen Quellcode bei, der in einer physischen Datei gespeichert ist.

Nachdem die einzelnen BuildProvider-Objekte mithilfe der entsprechenden AssemblyBuilder-Methode ihren jeweiligen Quellcodebeitrag generiert haben, kompiliert die ASP.NET-Buildumgebung den zusammengestellten Quellcode mithilfe der AssemblyBuilder-Klasse in einer Assembly.

TopicLocation
Gewusst wie: Sichern einer ASP.NET-Anwendung auf einem freigegebenen ServerErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Sichern einer ASP.NET-Anwendung auf einem freigegebenen ServerErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Sichern einer ASP.NET-Anwendung auf einem freigegebenen ServerErstellen von ASP.NET-Webanwendungen

Im folgenden Codebeispiel wird eine einfache Buildanbieterimplementierung veranschaulicht, die von der abstrakten BuildProvider-Basisklasse erbt. Der Buildanbieter überschreibt die Member CodeCompilerType, GetGeneratedType und GenerateCode der Basisklasse.

In der GenerateCode-Methodenimplementierung fügt der Buildanbieter mithilfe der CreateCodeFile-Methode den generierten Code für die Assemblykompilierung hinzu. Dieses Beispiel umfasst keine Implementierung der SampleClassGenerator-Klasse. Weitere Informationen finden Sie unter CodeCompileUnit.


using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Compilation;
using System.CodeDom.Compiler;
using System.CodeDom;
using System.Security;
using System.Security.Permissions;

// Define a simple build provider implementation.
[PermissionSet(SecurityAction.Demand, Unrestricted = true)]
public class SampleBuildProvider : BuildProvider
{
    // Define an internal member for the compiler type.
    protected CompilerType _compilerType = null;

    public SampleBuildProvider()
    {
		// Set the compiler to use Visual Basic.
		_compilerType = GetDefaultCompilerTypeForLanguage("C#");
	}

    // Return the internal CompilerType member 
    // defined in this implementation.
    public override CompilerType CodeCompilerType
    {
        get { return _compilerType; }
    }

    // Define a method that returns details for the 
    // code compiler for this build provider.
    public string GetCompilerTypeDetails()
    {
        StringBuilder details = new StringBuilder("");

        if (_compilerType != null)
        {
            // Format a string that contains the code compiler
            // implementation, and various compiler details.

            details.AppendFormat("CodeDomProvider type: {0}; \n",
                _compilerType.CodeDomProviderType.ToString());
            details.AppendFormat("Compiler debug build = {0}; \n",
                _compilerType.CompilerParameters.IncludeDebugInformation.ToString());
            details.AppendFormat("Compiler warning level = {0}; \n",
                _compilerType.CompilerParameters.WarningLevel.ToString());

            if (_compilerType.CompilerParameters.CompilerOptions != null)
            {
                details.AppendFormat("Compiler options: {0}; \n",
                    _compilerType.CompilerParameters.CompilerOptions.ToString());
            }
        }
        return details.ToString();
    }


    // Define the build provider implementation of the GenerateCode method.
    public override void GenerateCode(AssemblyBuilder assemBuilder)
    {
        // Generate a code compile unit, and add it to
        // the assembly builder.

        TextWriter tw = assemBuilder.CreateCodeFile(this);
        if (tw != null)
        {
            try
            {
                // Generate the code compile unit from the virtual path.
                CodeCompileUnit compileUnit = SampleClassGenerator.BuildCompileUnitFromPath(VirtualPath);

                // Generate the source for the code compile unit, 
                // and write it to a file specified by the assembly builder.
                CodeDomProvider provider = assemBuilder.CodeDomProvider;
                provider.CreateGenerator().GenerateCodeFromCompileUnit(compileUnit, tw, null);
            }
            finally
            {
                tw.Close();
            }
        }
    }

    public override System.Type GetGeneratedType(CompilerResults results)
    {
        string typeName = SampleClassGenerator.TypeName;

        return results.CompiledAssembly.GetType(typeName);
    }
}


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Anzeigen: