IAssemblyPostProcessor Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert die Methode, die eine Klasse implementiert, um eine Assembly zu verarbeiten, nachdem diese 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 Sie eine Implementierung der IAssemblyPostProcessor Schnittstelle erstellen und in der Web.config Datei einer Webanwendung registrieren.
Im ersten Teil des Codebeispiels wird eine Klasse mit dem Namen erstellt 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 in eine .dll Datei mit dem Befehl csc /target:library postProcessTest.cs
. Fügen Sie der resultierenden .dll-Datei den Ordner "Bin" einer ASP.NET Anwendung hinzu, und registrieren Sie die .dll in der datei Web.config, 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:\kompiliert.
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. Wenn ja, ruft die AssemblyBuilder Instanz die Methode für die IAssemblyPostProcessor PostProcessAssembly 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 Prüfpunkte in der Assembly einzurichten.
Wenn eine IAssemblyPostProcessor Schnittstelle registriert ist, werden die ASP.NET-Anwendung und ihre Assemblys immer im Debugmodus kompiliert.
Methoden
Dispose() |
Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen. (Geerbt von IDisposable) |
PostProcessAssembly(String) |
Wird aufgerufen, bevor die Assembly geladen wird, um der implementierenden Klasse das Ändern der Assembly zu ermöglichen. |