IAssemblyPostProcessor Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает методы, реализуемые классом для обработки сборки после ее построения.
public interface class IAssemblyPostProcessor : IDisposable
public interface IAssemblyPostProcessor : IDisposable
type IAssemblyPostProcessor = interface
interface IDisposable
Public Interface IAssemblyPostProcessor
Implements IDisposable
- Реализации
Примеры
В следующем примере кода показано, как создать реализацию IAssemblyPostProcessor интерфейса и зарегистрировать его в файле Web.config веб-приложения.
Первая часть примера кода создает класс с именем Samples.Process.postProcessTest
, реализующим IAssemblyPostProcessor интерфейс. Этот класс выполняет простое действие записи файла при вызове PostProcessAssembly метода.
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
Скомпилируйте класс в файл .dll с помощью команды csc /target:library postProcessTest.cs
. Добавьте полученный файл .dll в папку Bin приложения ASP.NET и зарегистрируйте .dll в файле Web.config, как показано в следующем коде.
<compilation debug="true" assemblyPostProcessorType="Samples.Process.postProcessTest" />
Когда пользователь посещает веб-сайт, веб-приложение динамически компилируется, а файл MyTest.txt будет записан в C:\compile.
Комментарии
Класс, реализующий этот интерфейс, может получить доступ к сборке после компиляции. Класс AssemblyBuilder компилирует сборки, а затем проверяет, зарегистрирован ли IAssemblyPostProcessor интерфейс в файле веб-конфигурации. В этом AssemblyBuilder случае экземпляр вызывает PostProcessAssembly метод для интерфейса, IAssemblyPostProcessor чтобы выполнить любое действие после компиляции и перед загрузкой сборки. Например, средство профилировщика может реализовать этот интерфейс для установки проб в сборке.
IAssemblyPostProcessor При регистрации интерфейса приложение ASP.NET и его сборки всегда будут компилироваться в режиме отладки.
Методы
Dispose() |
Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов. (Унаследовано от IDisposable) |
PostProcessAssembly(String) |
Вызывается перед загрузкой сборки, чтобы позволить реализующему классу вносить в нее изменения. |