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 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. |