IAssemblyPostProcessor Schnittstelle

Definition

Definiert die Methode, die eine Klasse implementiert, um eine Assembly zu verarbeiten, nachdem die Assembly erstellt wurde.

public interface class IAssemblyPostProcessor : IDisposable
public interface IAssemblyPostProcessor : IDisposable
type IAssemblyPostProcessor = interface
    interface IDisposable
Public Interface IAssemblyPostProcessor
Implements IDisposable
Implementiert

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine Implementierung der IAssemblyPostProcessor Schnittstelle erstellt und in der Web.config Datei einer Webanwendung registriert wird.

Der erste Teil des Codebeispiels erstellt eine Klasse mit dem Namen Samples.Process.postProcessTest , die die IAssemblyPostProcessor Schnittstelle implementiert. Diese Klasse führt die einfache Aktion zum Schreiben einer Datei aus, wenn die PostProcessAssembly Methode aufgerufen wird.

using System;
using System.Web.Compilation;
using System.IO;

namespace Samples.Process
{
    public class postProcessTest : IAssemblyPostProcessor
    {
        public static void Main(String[] args)
        {
        }

        public void PostProcessAssembly(string path)
        {
            StreamWriter sw = File.CreateText(@"c:\compile\MyTest.txt");
            sw.WriteLine("Compiled assembly:");
            sw.WriteLine(path);
            sw.Close();
        }

        public void Dispose()
        {
        }
    }
}
Imports System.Web.Compilation
Imports System.IO

Namespace Samples.Process
    Public Class postProcessTest
        Implements IAssemblyPostProcessor

        Sub Main()

        End Sub

        Public Sub PostProcessAssembly(ByVal path As String) _
            Implements IAssemblyPostProcessor.PostProcessAssembly
            Dim sw As StreamWriter
            sw = File.CreateText("c:\compile\MyTest.txt")
            sw.WriteLine("Compiled assembly:")
            sw.WriteLine(path)
            sw.Close()
        End Sub

        Public Sub Dispose() Implements IDisposable.Dispose

        End Sub
    End Class
End Namespace

Kompilieren Sie die Klasse mit dem Befehl csc /target:library postProcessTest.csin eine .dll Datei. Fügen Sie die resultierende .dll-Datei dem Ordner "Bin" einer ASP.NET-Anwendung hinzu, und registrieren Sie die .dll in der Web.config-Datei, wie im folgenden Code gezeigt.

<compilation debug="true" assemblyPostProcessorType="Samples.Process.postProcessTest" />

Wenn ein Benutzer die Website besucht, wird die Webanwendung dynamisch kompiliert, und die Datei MyTest.txt wird in C:\compile geschrieben.

Hinweise

Eine Klasse, die diese Schnittstelle implementiert, kann nach der Kompilierung auf eine Assembly zugreifen. Die AssemblyBuilder Klasse kompiliert Assemblys und überprüft dann, ob eine IAssemblyPostProcessor Schnittstelle in der Webkonfigurationsdatei registriert wurde. In diesem Fall ruft die AssemblyBuilder Instanz die PostProcessAssembly Methode für die IAssemblyPostProcessor Schnittstelle auf, um eine Aktion nach der Kompilierung und vor dem Laden der Assembly auszuführen. Beispielsweise könnte ein Profilertool diese Schnittstelle implementieren, um Probes in der Assembly einzurichten.

Wenn eine IAssemblyPostProcessor-Schnittstelle registriert wird, werden die ASP.NET Anwendung und die zugehörigen Assemblys immer im Debugmodus kompiliert.

Methoden

Name Beschreibung
Dispose()

Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind.

(Geerbt von IDisposable)
PostProcessAssembly(String)

Wird aufgerufen, bevor die Assembly geladen wird, damit die implementierende Klasse die Assembly ändern kann.

Gilt für: