IAssemblyPostProcessor Interface

Définition

Définit la méthode qu'une classe implémente pour traiter un assembly après la génération de celui-ci.

public interface class IAssemblyPostProcessor : IDisposable
public interface IAssemblyPostProcessor : IDisposable
type IAssemblyPostProcessor = interface
    interface IDisposable
Public Interface IAssemblyPostProcessor
Implements IDisposable
Implémente

Exemples

L’exemple de code suivant montre comment créer une implémentation de l’interface IAssemblyPostProcessor et l’inscrire dans le fichier Web.config d’une application web.

La première partie de l’exemple de code crée une classe nommée Samples.Process.postProcessTest qui implémente l’interface IAssemblyPostProcessor . Cette classe effectue l’action simple d’écrire un fichier lorsque la PostProcessAssembly méthode est appelée.

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

Compilez la classe dans un fichier .dll avec la commande csc /target:library postProcessTest.cs. Ajoutez le fichier .dll résultant au dossier Bin d’une application ASP.NET et inscrivez le .dll dans le fichier Web.config, comme indiqué dans le code suivant.

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

Lorsqu’un utilisateur visite le site Web, l’application web est compilée dynamiquement et le fichier MyTest.txt est écrit en C:\compile.

Remarques

Une classe implémentant cette interface peut accéder à un assembly après sa compilation. La AssemblyBuilder classe compile les assemblys, puis vérifie si une IAssemblyPostProcessor interface a été inscrite dans le fichier de configuration Web. Dans ce cas, l’instance AssemblyBuilder appelle la PostProcessAssembly méthode pour que l’interface IAssemblyPostProcessor effectue une action après la compilation et avant de charger l’assembly. Par exemple, un outil profileur peut implémenter cette interface pour établir des sondes dans l’assembly.

Lorsqu’une IAssemblyPostProcessor interface est inscrite, l’application ASP.NET et ses assemblys sont toujours compilés en mode débogage.

Méthodes

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

(Hérité de IDisposable)
PostProcessAssembly(String)

Appelé avant le chargement de l'assembly pour permettre à la classe d'implémentation de modifier l'assembly.

S’applique à