IAssemblyPostProcessor インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アセンブリがビルドされた後にアセンブリを処理するためにクラスが実装するメソッドを定義します。
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) |
アセンブリが読み込まれる前に呼び出され、実装クラスがアセンブリを変更できるようにします。 |