IAssemblyPostProcessor Interface
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Definieert de methode die een klasse implementeert om een assembly te verwerken nadat de assembly is gebouwd.
public interface class IAssemblyPostProcessor : IDisposable
public interface IAssemblyPostProcessor : IDisposable
type IAssemblyPostProcessor = interface
interface IDisposable
Public Interface IAssemblyPostProcessor
Implements IDisposable
- Implementeringen
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een implementatie van de IAssemblyPostProcessor interface maakt en deze registreert in het Web.config-bestand van een webtoepassing.
In het eerste deel van het codevoorbeeld wordt een klasse gemaakt met de naam Samples.Process.postProcessTest die de IAssemblyPostProcessor interface implementeert. Deze klasse voert de eenvoudige actie uit om een bestand te schrijven wanneer de PostProcessAssembly methode wordt aangeroepen.
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
Compileer de klasse in een .dll-bestand met de opdracht csc /target:library postProcessTest.cs. Voeg het resulterende .dll bestand toe aan de map Bin van een ASP.NET toepassing en registreer de .dll in het Web.config bestand, zoals wordt weergegeven in de volgende code.
<compilation debug="true" assemblyPostProcessorType="Samples.Process.postProcessTest" />
Wanneer een gebruiker de website bezoekt, wordt de webtoepassing dynamisch gecompileerd en wordt het bestand MyTest.txt naar C:\compile geschreven.
Opmerkingen
Een klasse die deze interface implementeert, heeft toegang tot een assembly nadat deze is gecompileerd. De AssemblyBuilder klasse compileert assembly's en controleert vervolgens of een IAssemblyPostProcessor interface is geregistreerd in het webconfiguratiebestand. Als dit het geval is, roept het AssemblyBuilder exemplaar de PostProcessAssembly methode voor de IAssemblyPostProcessor interface aan om een actie uit te voeren na de compilatie en voordat de assembly wordt geladen. Met een profilerhulpprogramma kan deze interface bijvoorbeeld worden geïmplementeerd om tests in de assembly tot stand te brengen.
Wanneer een IAssemblyPostProcessor-interface is geregistreerd, worden de ASP.NET toepassing en de bijbehorende assembly's altijd gecompileerd in de foutopsporingsmodus.
Methoden
| Name | Description |
|---|---|
| Dispose() |
Voert door de toepassing gedefinieerde taken uit die zijn gekoppeld aan het vrijmaken, vrijgeven of opnieuw instellen van onbeheerde resources. (Overgenomen van IDisposable) |
| PostProcessAssembly(String) |
Aangeroepen voordat de assembly wordt geladen, zodat de implementatieklasse de assembly kan wijzigen. |