Udostępnij za pośrednictwem


IAssemblyPostProcessor Interfejs

Definicja

Definiuje metodę implementuje klasę w celu przetworzenia zestawu po skompilowania zestawu.

public interface class IAssemblyPostProcessor : IDisposable
public interface IAssemblyPostProcessor : IDisposable
type IAssemblyPostProcessor = interface
    interface IDisposable
Public Interface IAssemblyPostProcessor
Implements IDisposable
Implementuje

Przykłady

Poniższy przykład kodu pokazuje, jak utworzyć implementację interfejsu IAssemblyPostProcessor i zarejestrować go w pliku Web.config aplikacji internetowej.

Pierwsza część przykładu kodu tworzy klasę o nazwie Samples.Process.postProcessTest , która implementuje IAssemblyPostProcessor interfejs. Ta klasa wykonuje prostą akcję zapisywania pliku po PostProcessAssembly wywołaniu metody.

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

Skompiluj klasę do pliku .dll za pomocą polecenia csc /target:library postProcessTest.cs. Dodaj wynikowy plik .dll do folderu Bin aplikacji ASP.NET i zarejestruj .dll w pliku Web.config, jak pokazano w poniższym kodzie.

<compilation debug="true" assemblyPostProcessorType="Samples.Process.postProcessTest" />  

Gdy użytkownik odwiedza witrynę sieci Web, aplikacja internetowa jest dynamicznie kompilowana, a plik MyTest.txt zostanie zapisany w folderze C:\compile.

Uwagi

Klasa implementowana przez ten interfejs może uzyskać dostęp do zestawu po jego skompilowaniu. Klasa AssemblyBuilder kompiluje zestawy, a następnie sprawdza, czy IAssemblyPostProcessor interfejs został zarejestrowany w pliku konfiguracji sieci Web. Jeśli tak, wystąpienie wywołuje metodę PostProcessAssembly interfejsuIAssemblyPostProcessor, AssemblyBuilder aby wykonać dowolną akcję po kompilacji i przed załadowaniem zestawu. Na przykład narzędzie profilera może zaimplementować ten interfejs w celu ustanowienia sond w zestawie.

Po zarejestrowaniu interfejsu IAssemblyPostProcessor aplikacja ASP.NET i jego zestawy będą zawsze kompilowane w trybie debugowania.

Metody

Dispose()

Wykonuje zdefiniowane przez aplikację zadania skojarzone ze zwalnianiem lub resetowaniem zasobów niezarządzanych.

(Odziedziczone po IDisposable)
PostProcessAssembly(String)

Wywoływane przed załadowaniem zestawu w celu umożliwienia klasy implementowania modyfikowania zestawu.

Dotyczy