IAssemblyPostProcessor Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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. |