IAssemblyPostProcessor Interface

Definitie

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.

Van toepassing op