IAssemblyPostProcessor Interface
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define o método que uma classe implementa para processar um assembly após o assembly ter sido construído.
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 seguinte demonstra como criar uma implementação da IAssemblyPostProcessor interface e registá-la no ficheiro Web.config de uma aplicação Web.
A primeira parte do exemplo de código cria uma classe chamada Samples.Process.postProcessTest que implementa a IAssemblyPostProcessor interface. Esta classe executa a ação simples de escrever um ficheiro 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
Compila a classe num ficheiro .dll com o comando csc /target:library postProcessTest.cs. Adicione o ficheiro .dll resultante à pasta Bin de uma aplicação ASP.NET e registe o .dll no ficheiro Web.config, como mostrado no código seguinte.
<compilation debug="true" assemblyPostProcessorType="Samples.Process.postProcessTest" />
Quando um utilizador visita o site, a aplicação Web é compilada dinamicamente e o ficheiro MyTest.txt será escrito em C:\compile.
Observações
Uma classe que implementa esta interface pode aceder a uma assembly depois de esta ter sido compilada. A AssemblyBuilder classe compila assemblies e depois verifica se uma IAssemblyPostProcessor interface foi registada no ficheiro de configuração Web. Se assim for, 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 a assembleia. Por exemplo, uma ferramenta de profiler poderia implementar esta interface para estabelecer sondas na montagem.
Quando uma interface IAssemblyPostProcessor é registada, a aplicação ASP.NET e os seus assemblies serão sempre compilados em modo de depuração.
Métodos
| Name | Description |
|---|---|
| Dispose() |
Realiza tarefas definidas pela aplicação associadas à libertação, libertação ou reinício de recursos não geridos. (Herdado de IDisposable) |
| PostProcessAssembly(String) |
Chamado antes de o assembly ser carregado para permitir que a classe implementadora modifique o assembly. |