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:\compil.
Комментарии
Класс, реализующий этот интерфейс, может получить доступ к сборке после компиляции. Класс AssemblyBuilder компилирует сборки, а затем проверяет, зарегистрирован ли IAssemblyPostProcessor интерфейс в файле веб-конфигурации. В этом AssemblyBuilder случае экземпляр вызывает PostProcessAssembly метод для IAssemblyPostProcessor интерфейса для выполнения любого действия после компиляции и перед загрузкой сборки. Например, средство профилировщика может реализовать этот интерфейс для установления проб в сборке.
При регистрации интерфейса IAssemblyPostProcessor приложение ASP.NET и его сборки всегда будут компилироваться в режиме отладки.
Методы
| Имя | Описание |
|---|---|
| Dispose() |
Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов. (Унаследовано от IDisposable) |
| PostProcessAssembly(String) |
Вызывается перед загрузкой сборки, чтобы разрешить реализации класса изменять сборку. |