IAssemblyPostProcessor インターフェイス

定義

アセンブリがビルドされた後にアセンブリを処理するためにクラスが実装するメソッドを定義します。

public interface class IAssemblyPostProcessor : IDisposable
public interface IAssemblyPostProcessor : IDisposable
type IAssemblyPostProcessor = interface
    interface IDisposable
Public Interface IAssemblyPostProcessor
Implements IDisposable
実装

次のコード例では、 IAssemblyPostProcessor インターフェイスの実装を作成し、Web アプリケーションの Web.config ファイルに登録する方法を示します。

コード例の最初の部分では、IAssemblyPostProcessor インターフェイスを実装する Samples.Process.postProcessTest という名前のクラスを作成します。 このクラスは、 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

コマンド csc /target:library postProcessTest.csを使用して、クラスを .dll ファイルにコンパイルします。 次のコードに示すように、結果の .dll ファイルを ASP.NET アプリケーションの Bin フォルダーに追加し、Web.config ファイルに .dll を登録します。

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

ユーザーが Web サイトにアクセスすると、Web アプリケーションが動的にコンパイルされ、ファイル MyTest.txt が C:\compile に書き込まれます。

注釈

このインターフェイスを実装するクラスは、コンパイル後にアセンブリにアクセスできます。 AssemblyBuilder クラスはアセンブリをコンパイルし、IAssemblyPostProcessor インターフェイスが Web 構成ファイルに登録されているかどうかを確認します。 その場合、AssemblyBuilder インスタンスはIAssemblyPostProcessor インターフェイスのPostProcessAssembly メソッドを呼び出して、コンパイル後およびアセンブリの読み込み前にアクションを実行します。 たとえば、プロファイラー ツールでは、このインターフェイスを実装してアセンブリ内にプローブを確立できます。

IAssemblyPostProcessor インターフェイスが登録されると、ASP.NET アプリケーションとそのアセンブリは常にデバッグ モードでコンパイルされます。

メソッド

名前 説明
Dispose()

アンマネージド リソースの解放、解放、またはリセットに関連付けられているアプリケーション定義のタスクを実行します。

(継承元 IDisposable)
PostProcessAssembly(String)

アセンブリが読み込まれる前に呼び出され、実装クラスがアセンブリを変更できるようにします。

適用対象