IAssemblyPostProcessor Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define el método que una clase implementa para procesar un ensamblado después de que éste se haya compilado.
public interface class IAssemblyPostProcessor : IDisposable
public interface IAssemblyPostProcessor : IDisposable
type IAssemblyPostProcessor = interface
interface IDisposable
Public Interface IAssemblyPostProcessor
Implements IDisposable
- Implementaciones
Ejemplos
En el ejemplo de código siguiente se muestra cómo crear una implementación de la IAssemblyPostProcessor interfaz y registrarla en el archivo Web.config de una aplicación web.
La primera parte del ejemplo de código crea una clase denominada Samples.Process.postProcessTest
que implementa la IAssemblyPostProcessor interfaz . Esta clase realiza la acción simple de escribir un archivo cuando se llama al PostProcessAssembly método .
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 la clase en un archivo .dll con el comando csc /target:library postProcessTest.cs
. Agregue el archivo de .dll resultante a la carpeta Bin de una aplicación de ASP.NET y registre el .dll en el archivo Web.config, como se muestra en el código siguiente.
<compilation debug="true" assemblyPostProcessorType="Samples.Process.postProcessTest" />
Cuando un usuario visita el sitio web, la aplicación web se compila dinámicamente y el archivo MyTest.txt se escribirá en C:\compile.
Comentarios
Una clase que implementa esta interfaz puede tener acceso a un ensamblado una vez compilado. La AssemblyBuilder clase compila ensamblados y, a continuación, comprueba si se ha registrado una IAssemblyPostProcessor interfaz en el archivo de configuración web. Si es así, la AssemblyBuilder instancia llama al PostProcessAssembly método para que la IAssemblyPostProcessor interfaz realice cualquier acción después de la compilación y antes de cargar el ensamblado. Por ejemplo, una herramienta de generador de perfiles podría implementar esta interfaz para establecer sondeos en el ensamblado.
Cuando se registra una IAssemblyPostProcessor interfaz, la aplicación ASP.NET y sus ensamblados siempre se compilarán en modo de depuración.
Métodos
Dispose() |
Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. (Heredado de IDisposable) |
PostProcessAssembly(String) |
Se le llama antes de que el ensamblado se cargue para permitir que la clase que efectúa la implementación modifique el ensamblado. |