IAssemblyPostProcessor Interfejs
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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. |