Condividi tramite


IAssemblyPostProcessor Interfaccia

Definizione

Definisce il metodo implementato da una classe per elaborare un assembly dopo che è stato compilato.

public interface class IAssemblyPostProcessor : IDisposable
public interface IAssemblyPostProcessor : IDisposable
type IAssemblyPostProcessor = interface
    interface IDisposable
Public Interface IAssemblyPostProcessor
Implements IDisposable
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato come creare un'implementazione dell'interfaccia IAssemblyPostProcessor e registrarla nel file Web.config di un'applicazione Web.

La prima parte dell'esempio di codice crea una classe denominata Samples.Process.postProcessTest che implementa l'interfaccia IAssemblyPostProcessor . Questa classe esegue l'azione semplice di scrittura di un file quando viene chiamato il PostProcessAssembly metodo.

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

Compilare la classe in un file .dll con il comando csc /target:library postProcessTest.cs. Aggiungere il file di .dll risultante alla cartella Bin di un'applicazione ASP.NET e registrare il .dll nel file Web.config, come illustrato nel codice seguente.

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

Quando un utente visita il sito Web, l'applicazione Web viene compilata dinamicamente e il file MyTest.txt verrà scritto in C:\compile.

Commenti

Una classe che implementa questa interfaccia può accedere a un assembly dopo la compilazione. La AssemblyBuilder classe compila gli assembly e quindi verifica se un'interfaccia IAssemblyPostProcessor è stata registrata nel file di configurazione Web. In tal caso, l'istanza AssemblyBuilder chiama il PostProcessAssembly metodo per l'interfaccia per eseguire qualsiasi azione dopo la IAssemblyPostProcessor compilazione e prima di caricare l'assembly. Ad esempio, uno strumento profiler potrebbe implementare questa interfaccia per stabilire i probe nell'assembly.

Quando viene registrata un'interfaccia IAssemblyPostProcessor , l'applicazione ASP.NET e i relativi assembly verranno sempre compilati in modalità di debug.

Metodi

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

(Ereditato da IDisposable)
PostProcessAssembly(String)

Chiamato prima del caricamento dell'assembly per consentire alla classe che implementa di modificare l'assembly.

Si applica a