IAssemblyPostProcessor Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define o método implementado por uma classe para processar um assembly depois que o assembly foi compilado.
public interface class IAssemblyPostProcessor : IDisposable
public interface IAssemblyPostProcessor : IDisposable
type IAssemblyPostProcessor = interface
interface IDisposable
Public Interface IAssemblyPostProcessor
Implements IDisposable
- Implementações
Exemplos
O exemplo de código a seguir demonstra como criar uma implementação da IAssemblyPostProcessor interface e registrá-la no arquivo Web.config de um aplicativo Web.
A primeira parte do exemplo de código cria uma classe nomeada Samples.Process.postProcessTest
que implementa a IAssemblyPostProcessor interface. Essa classe executa a ação simples de escrever um arquivo quando o PostProcessAssembly método é chamado.
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
Compile a classe em um arquivo .dll com o comando csc /target:library postProcessTest.cs
. Adicione o arquivo .dll resultante à pasta Bin de um aplicativo ASP.NET e registre o .dll no arquivo Web.config, conforme mostrado no código a seguir.
<compilation debug="true" assemblyPostProcessorType="Samples.Process.postProcessTest" />
Quando um usuário visita o site, o aplicativo Web é compilado dinamicamente e o arquivo MyTest.txt será gravado em C:\compile.
Comentários
Uma classe que implementa essa interface pode acessar um assembly após a compilação. A AssemblyBuilder classe compila assemblies e verifica se uma IAssemblyPostProcessor interface foi registrada no arquivo de configuração da Web. Nesse caso, a AssemblyBuilder instância chama o PostProcessAssembly método para que a IAssemblyPostProcessor interface execute qualquer ação após a compilação e antes de carregar o assembly. Por exemplo, uma ferramenta de criador de perfil poderia implementar essa interface para estabelecer investigações no assembly.
Quando uma IAssemblyPostProcessor interface é registrada, o aplicativo ASP.NET e seus assemblies sempre serão compilados no modo de depuração.
Métodos
Dispose() |
Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados. (Herdado de IDisposable) |
PostProcessAssembly(String) |
Chamado antes de o assembly ser carregado para permitir que a classe de implementação modifique o assembly. |