BuildProviderとは? わかりやすく解説

BuildProvider クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

ASP.NET ビルド環境でソース コードを生成するためのプロパティとメソッドのセットを定義します。このクラスは抽象クラスです。

名前空間: System.Web.Compilation
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public MustInherit Class
 BuildProvider
Dim instance As BuildProvider
public abstract class BuildProvider
public ref class BuildProvider abstract
public abstract class BuildProvider
解説解説

BuildProvider オブジェクトは、ASP.NET ビルド環境で 1 つのアプリケーション内に複数のファイルの種類でソース コードを生成するために使用されます。BuildProvider の派生クラスでは、ファイル、Web ページ、リソース、およびその他のカスタム アイテム用のソース コードを主に提供します。

通常、BuildProvider クラスのインスタンスを直接作成することはありません。その代わり、BuildProvider から派生したクラスを実装し、ASP.NET ビルド環境で使用するために BuildProvider 実装を設定します。

BuildProvider クラスのインスタンスを AssemblyBuilder オブジェクトと共に使用して、1 つ以上のファイルをコンパイル済みのアセンブリにビルドします。BuildProvider インスタンスは、ファイルごとのソース コードを適切な言語で生成します。AssemblyBuilder オブジェクトは、各 BuildProvider インスタンスによって指定されたソース コードを単一のアセンブリに結合します。

ASP.NET ビルド環境では、BuildProvider クラスのインスタンスを使用してアプリケーション内のファイルをビルドします。BuildProvider クラスの VirtualPath プロパティは、ビルドされるファイルへのパスを示します。アプリケーション内の各ファイルの拡張子は、対応するビルド プロバイダにマップされます。ASP.NET ビルド環境では、各ファイルの BuildProvider インスタンスをファイル拡張子に基づいて初期化し、BuildProvider メソッドを使用してファイルごとにソース コードを生成します。ASP.NET ビルド環境では、1 つ以上のファイルから 1 つのアセンブリを構築するとき、AssemblyBuilder オブジェクトが、優先されるコンパイラ言語とファイル コンテキストに基づいて BuildProvider メソッドに渡されます。これにより、BuildProvider インスタンスはアセンブリ全体に対し、それぞれのファイルのソース コードを指定できます。

ASP.NET アプリケーション内にファイルの種類ごとにカスタム ビルド アクションを定義するには、BuildProvider からクラスを派生して、この派生クラス内にファイルの種類をビルドするためのメンバを実装してから、アプリケーション構成ファイル内のファイル拡張子に対応させるためのビルド プロバイダを設定する必要があります。

add 要素は、サポートするファイルのファイル拡張子と、ビルド プロバイダがコード ファイル、Web ファイル、リソース ファイルまたはすべてのファイルをサポートしているかどうかを指定します。ビルド プロバイダ実装の完全修飾型名を指定するには、type 属性を使用します。ビルド プロバイダの適用対象を、App_Code ディレクトリ内のファイル、Web コンテンツ ディレクトリ内のファイル、グローバルまたはローカル リソース、またはすべてのファイルのいずれにするかを指定するには、appliesTo 属性を使用します。BuildProvider クラスがサポートするファイルの識別に使用するファイル拡張子を指定するには、extension 属性を使用します。構成ファイル内のビルド プロバイダを調べるには、BuildProviderCollection クラスを使用します。ビルド プロバイダの構成の詳細については、「compilation の buildProviders 要素 (ASP.NET 設定スキーマ)」を参照してください。

独自のファイルの種類でソース コードを生成するビルド プロバイダを実装するには、BuildProvider からクラスを派生し、GenerateCode メソッドをオーバーライドすることで、目的のファイルの種類をサポートするソース コードを生成します。生成されたソース コードは、CodeDOM グラフの形式で、または物理ソース コード ファイルを表すコンテンツとして、AssemblyBuilder オブジェクトに追加されます。ビルド プロバイダで独自のプログラミング言語が必要な場合は、CodeCompilerType プロパティをオーバーライドして、そのプログラミング言語をサポートする CompilerType オブジェクトを返すようにします。ビルド プロバイダが独自のプログラミング言語を必要としない場合は、CodeCompilerType プロパティをオーバーライドせずに基本クラス実装を使用します。これにより、Visual Basic または C# などの .NET Framework 言語を使用できるビルド プロバイダが指定されます。

Web コンテンツのソース コードを生成するビルド プロバイダを実装するには、BuildProvider からクラスを派生し、BuildProvider によって生成されるクラスの Type を返すための GetGeneratedType メソッドをオーバーライドします。GenerateCode メソッドをオーバーライドすることで、サポート対象ファイルによって提供される型のソース コードを生成します。

使用例使用例

簡単なビルド プロバイダを、抽象基本クラス BuildProvider から継承して実装するコード例を次に示します。ビルド プロバイダは、基本クラスのメンバである CodeCompilerType、GetGeneratedType、および GenerateCode をオーバーライドします。

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections
Imports System.IO
Imports System.Text
Imports System.Web
Imports System.Web.Compilation
Imports System.CodeDom.Compiler
Imports System.CodeDom
Imports System.Security
Imports System.Security.Permissions

<PermissionSet(SecurityAction.Demand, Unrestricted := true)>
 _
Public Class SampleBuildProvider
    Inherits BuildProvider

    Protected _compilerType As CompilerType
 = Nothing

    Public Sub New()
        _compilerType = GetDefaultCompilerType()
    End Sub

    ' Return the internal CompilerType member 
    ' defined in this implementation.
    Public Overrides ReadOnly
 Property CodeCompilerType() As CompilerType
        Get
            CodeCompilerType = _compilerType
        End Get
    End Property


    ' Define the build provider implementation of the GenerateCode method.
    Public Overrides Sub
 GenerateCode(ByVal assemBuilder As AssemblyBuilder)
        ' Generate a code compile unit, and add it to
        ' the assembly builder.

        Dim tw As TextWriter = assemBuilder.CreateCodeFile(Me)
        If Not tw Is Nothing
 Then
            Try
                ' Generate the code compile unit from the virtual path.
                Dim compileUnit As CodeCompileUnit
 = _
                        SampleClassGenerator.BuildCompileUnitFromPath(VirtualPath)

                ' Generate the source for the code compile unit, 
                ' and write it to a file specified by the assembly builder.
                Dim provider As CodeDomProvider
 = assemBuilder.CodeDomProvider
                provider.GenerateCodeFromCompileUnit(compileUnit, tw, Nothing)
            Finally
                tw.Close()
            End Try

        End If
    End Sub

    Public Overrides Function
 GetGeneratedType(ByVal results As CompilerResults)
 As System.Type
        Dim typeName As String
 = SampleClassGenerator.TypeName

        Return results.CompiledAssembly.GetType(typeName)
    End Function

End Class
using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Compilation;
using System.CodeDom.Compiler;
using System.CodeDom;
using System.Security;
using System.Security.Permissions;

// Define a simple build provider implementation.
[PermissionSet(SecurityAction.Demand, Unrestricted = true)]
public class SampleBuildProvider : BuildProvider
{
    // Define an internal member for the compiler type.
    protected CompilerType _compilerType = null;

    public SampleBuildProvider()
    {
        _compilerType = GetDefaultCompilerTypeForLanguage("C#");
    }

    // Return the internal CompilerType member 
    // defined in this implementation.
    public override CompilerType CodeCompilerType
    {
        get { return _compilerType; }
    }


    // Define the build provider implementation of the GenerateCode
 method.
    public override void GenerateCode(AssemblyBuilder
 assemBuilder)
    {
        // Generate a code compile unit, and add it to
        // the assembly builder.

        TextWriter tw = assemBuilder.CreateCodeFile(this);
        if (tw != null)
        {
            try
            {
                // Generate the code compile unit from the virtual path.
                CodeCompileUnit compileUnit = SampleClassGenerator.BuildCompileUnitFromPath(VirtualPath);

                // Generate the source for the code compile unit, 
                // and write it to a file specified by the assembly
 builder.
                CodeDomProvider provider = assemBuilder.CodeDomProvider;
                provider.GenerateCodeFromCompileUnit(compileUnit, tw, null);
            }
            finally
            {
                tw.Close();
            }
        }
    }

    public override System.Type GetGeneratedType(CompilerResults
 results)
    {
        string typeName = SampleClassGenerator.TypeName;

        return results.CompiledAssembly.GetType(typeName);
    }
}
継承階層継承階層
System.Object
  System.Web.Compilation.BuildProvider
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
BuildProvider メンバ
System.Web.Compilation 名前空間
CompilerType
ClientBuildManager
AssemblyBuilder クラス
System.Web.Configuration.BuildProvider

BuildProvider クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

動的リソースのコンパイル時に特定の種類のファイルを解析し、コードを生成する機能を提供します。このクラスは継承できません。

名前空間: System.Web.Configuration
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public NotInheritable Class
 BuildProvider
    Inherits ConfigurationElement
Dim instance As BuildProvider
public sealed class BuildProvider : ConfigurationElement
public ref class BuildProvider sealed : public
 ConfigurationElement
public final class BuildProvider extends ConfigurationElement
public final class BuildProvider extends
 ConfigurationElement
継承階層継承階層
System.Object
   System.Configuration.ConfigurationElement
    System.Web.Configuration.BuildProvider
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
BuildProvider メンバ
System.Web.Configuration 名前空間
BuildProviderCollection
BuildProvider クラス

BuildProvider コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

BuildProvider クラスの新しいインスタンスを初期化します。

名前空間: System.Web.Compilation
アセンブリ: System.Web (system.web.dll 内)
構文構文

protected BuildProvider ()
protected:
BuildProvider ()
protected BuildProvider ()
解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
BuildProvider クラス
BuildProvider メンバ
System.Web.Compilation 名前空間

BuildProvider コンストラクタ

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

指定した値に初期化された BuildProvider クラスのインスタンスを作成します。

名前空間: System.Web.Configuration
アセンブリ: System.Web (system.web.dll 内)
構文構文

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
BuildProvider クラス
BuildProvider メンバ
System.Web.Configuration 名前空間

BuildProvider プロパティ


BuildProvider プロパティ


パブリック プロパティパブリック プロパティ

( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ ElementInformation  ConfigurationElement オブジェクトのカスタマイズできない情報と機能を格納する ElementInformation オブジェクトを取得します。 ( ConfigurationElement から継承されます。)
パブリック プロパティ Extension 動的リソースのコンパイル時に割り当てる拡張子を取得または設定します。
パブリック プロパティ LockAllAttributesExcept  ロックされている属性のコレクションを取得します。 ( ConfigurationElement から継承されます。)
パブリック プロパティ LockAllElementsExcept  ロックされている要素のコレクションを取得します。 ( ConfigurationElement から継承されます。)
パブリック プロパティ LockAttributes  ロックされている属性のコレクションを取得します。 ( ConfigurationElement から継承されます。)
パブリック プロパティ LockElements  ロックされている要素のコレクションを取得します。 ( ConfigurationElement から継承されます。)
パブリック プロパティ LockItem  要素がロックされているかどうかを示す値を取得または設定します。 ( ConfigurationElement から継承されます。)
パブリック プロパティ Type 使用する BuildProvider インスタンスを示す、クラスとアセンブリのコンマ区切りの組み合わせを取得または設定します。
プロテクト プロパティプロテクト プロパティ
  名前 説明
プロテクト プロパティ ElementProperty  ConfigurationElement オブジェクト自体を表す ConfigurationElementProperty オブジェクトを取得します。 ( ConfigurationElement から継承されます。)
プロテクト プロパティ EvaluationContext  ConfigurationElement オブジェクトの ContextInformation オブジェクトを取得します。 ( ConfigurationElement から継承されます。)
プロテクト プロパティ Item  オーバーロードされます。 この ConfigurationElement オブジェクトのプロパティ、属性、または子要素を取得または設定します。 ( ConfigurationElement から継承されます。)
プロテクト プロパティ Properties  プロパティのコレクションを取得します。 ( ConfigurationElement から継承されます。)
参照参照

関連項目

BuildProvider クラス
System.Web.Configuration 名前空間
BuildProviderCollection
BuildProvider クラス

BuildProvider メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

BuildProvider クラス
System.Web.Compilation 名前空間
CompilerType
ClientBuildManager
AssemblyBuilder クラス
System.Web.Configuration.BuildProvider

BuildProvider メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド DeserializeElement  構成ファイルから XML を読み取ります。 ( ConfigurationElement から継承されます。)
プロテクト メソッド Finalize  Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。)
プロテクト メソッド Init  ConfigurationElement オブジェクトを初期状態に設定します。 ( ConfigurationElement から継承されます。)
プロテクト メソッド InitializeDefault  ConfigurationElement オブジェクトの既定の値セットを初期化するために使用します。 ( ConfigurationElement から継承されます。)
プロテクト メソッド IsModified  派生クラスに実装された場合、この構成要素が最後の保存または読み込み以降に変更されたかどうかを示します。 ( ConfigurationElement から継承されます。)
プロテクト メソッド ListErrors  この ConfigurationElement オブジェクトおよびすべてのサブ要素の無効なプロパティのエラーを、渡されたリストに追加します。 ( ConfigurationElement から継承されます。)
プロテクト メソッド MemberwiseClone  現在の Object の簡易コピーを作成します。 ( Object から継承されます。)
プロテクト メソッド OnDeserializeUnrecognizedAttribute  逆シリカル化中に不明な属性が発生したかどうかを示す値を取得します。 ( ConfigurationElement から継承されます。)
プロテクト メソッド OnDeserializeUnrecognizedElement  逆シリカル化中に不明な要素が発生したかどうかを示す値を取得します。 ( ConfigurationElement から継承されます。)
プロテクト メソッド OnRequiredPropertyNotFound  必須プロパティが見つからなかったかどうかを示す値を取得します。 ( ConfigurationElement から継承されます。)
プロテクト メソッド PostDeserialize  逆シリアル化後に呼び出されます。 ( ConfigurationElement から継承されます。)
プロテクト メソッド PreSerialize  シリアル化前に呼び出されます。 ( ConfigurationElement から継承されます。)
プロテクト メソッド Reset  ConfigurationElement オブジェクトの内部状態 (ロックやプロパティ コレクションなど) をリセットします。 ( ConfigurationElement から継承されます。)
プロテクト メソッド ResetModified  派生クラスに実装された場合、IsModified メソッドの値を false にリセットします。 ( ConfigurationElement から継承されます。)
プロテクト メソッド SerializeElement  派生クラスに実装されている場合、この構成要素の内容を構成ファイルに書き込みます。 ( ConfigurationElement から継承されます。)
プロテクト メソッド SerializeToXmlElement  派生クラスに実装されている場合、この構成要素の外側のタグを構成ファイルに書き込みます。 ( ConfigurationElement から継承されます。)
プロテクト メソッド SetPropertyValue  プロパティを指定した値に設定します。 ( ConfigurationElement から継承されます。)
プロテクト メソッド SetReadOnly  ConfigurationElement オブジェクトおよびすべてのサブ要素に IsReadOnly プロパティを設定します。 ( ConfigurationElement から継承されます。)
プロテクト メソッド Unmerge  保存しないすべての値を削除するには、ConfigurationElement オブジェクトを変更します。 ( ConfigurationElement から継承されます。)
参照参照

関連項目

BuildProvider クラス
System.Web.Configuration 名前空間
BuildProviderCollection
BuildProvider クラス

BuildProvider メンバ

ASP.NET ビルド環境でソース コードを生成するためのプロパティとメソッドのセットを定義します。このクラスは抽象クラスです。

BuildProvider データ型で公開されるメンバを以下の表に示します。


プロテクト コンストラクタプロテクト コンストラクタ
  名前 説明
プロテクト メソッド BuildProvider BuildProvider クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

BuildProvider クラス
System.Web.Compilation 名前空間
CompilerType
ClientBuildManager
AssemblyBuilder クラス
System.Web.Configuration.BuildProvider

BuildProvider メンバ

動的リソースのコンパイル時に特定の種類のファイルを解析し、コードを生成する機能を提供します。このクラスは継承できません。

BuildProvider データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド BuildProvider 指定した値に初期化された BuildProvider クラスのインスタンスを作成します。
パブリック プロパティパブリック プロパティ
( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ ElementInformation  ConfigurationElement オブジェクトのカスタマイズできない情報と機能を格納する ElementInformation オブジェクトを取得します。 (ConfigurationElement から継承されます。)
パブリック プロパティ Extension 動的リソースのコンパイル時に割り当てる拡張子を取得または設定します。
パブリック プロパティ LockAllAttributesExcept  ロックされている属性のコレクションを取得します。(ConfigurationElement から継承されます。)
パブリック プロパティ LockAllElementsExcept  ロックされている要素のコレクションを取得します。(ConfigurationElement から継承されます。)
パブリック プロパティ LockAttributes  ロックされている属性のコレクションを取得します。 (ConfigurationElement から継承されます。)
パブリック プロパティ LockElements  ロックされている要素のコレクションを取得します。(ConfigurationElement から継承されます。)
パブリック プロパティ LockItem  要素がロックされているかどうかを示す値を取得または設定します。(ConfigurationElement から継承されます。)
パブリック プロパティ Type 使用する BuildProvider インスタンスを示す、クラスとアセンブリのコンマ区切りの組み合わせを取得または設定します。
プロテクト プロパティプロテクト プロパティ
  名前 説明
プロテクト プロパティ ElementProperty  ConfigurationElement オブジェクト自体を表す ConfigurationElementProperty オブジェクトを取得します。(ConfigurationElement から継承されます。)
プロテクト プロパティ EvaluationContext  ConfigurationElement オブジェクトの ContextInformation オブジェクトを取得します。(ConfigurationElement から継承されます。)
プロテクト プロパティ Item  オーバーロードされます。 この ConfigurationElement オブジェクトのプロパティ、属性、または子要素を取得または設定します。(ConfigurationElement から継承されます。)
プロテクト プロパティ Properties  プロパティのコレクションを取得します。(ConfigurationElement から継承されます。)
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド DeserializeElement  構成ファイルから XML を読み取ります。 (ConfigurationElement から継承されます。)
プロテクト メソッド Finalize  Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
プロテクト メソッド Init  ConfigurationElement オブジェクトを初期状態に設定します。 (ConfigurationElement から継承されます。)
プロテクト メソッド InitializeDefault  ConfigurationElement オブジェクトの既定の値セットを初期化するために使用します。 (ConfigurationElement から継承されます。)
プロテクト メソッド IsModified  派生クラスに実装された場合、この構成要素が最後の保存または読み込み以降に変更されたかどうかを示します。 (ConfigurationElement から継承されます。)
プロテクト メソッド ListErrors  この ConfigurationElement オブジェクトおよびすべてのサブ要素の無効なプロパティのエラーを、渡されたリストに追加します。 (ConfigurationElement から継承されます。)
プロテクト メソッド MemberwiseClone  現在の Object の簡易コピーを作成します。 (Object から継承されます。)
プロテクト メソッド OnDeserializeUnrecognizedAttribute  逆シリカル化中に不明な属性が発生したかどうかを示す値を取得します。 (ConfigurationElement から継承されます。)
プロテクト メソッド OnDeserializeUnrecognizedElement  逆シリカル化中に不明な要素が発生したかどうかを示す値を取得します。 (ConfigurationElement から継承されます。)
プロテクト メソッド OnRequiredPropertyNotFound  必須プロパティが見つからなかったかどうかを示す値を取得します。 (ConfigurationElement から継承されます。)
プロテクト メソッド PostDeserialize  逆シリアル化後に呼び出されます。 (ConfigurationElement から継承されます。)
プロテクト メソッド PreSerialize  シリアル化前に呼び出されます。 (ConfigurationElement から継承されます。)
プロテクト メソッド Reset  ConfigurationElement オブジェクトの内部状態 (ロックやプロパティ コレクションなど) をリセットします。 (ConfigurationElement から継承されます。)
プロテクト メソッド ResetModified  派生クラスに実装された場合、IsModified メソッドの値を false にリセットします。 (ConfigurationElement から継承されます。)
プロテクト メソッド SerializeElement  派生クラスに実装されている場合、この構成要素の内容を構成ファイルに書き込みます。 (ConfigurationElement から継承されます。)
プロテクト メソッド SerializeToXmlElement  派生クラスに実装されている場合、この構成要素の外側のタグを構成ファイルに書き込みます。 (ConfigurationElement から継承されます。)
プロテクト メソッド SetPropertyValue  プロパティを指定した値に設定します。 (ConfigurationElement から継承されます。)
プロテクト メソッド SetReadOnly  ConfigurationElement オブジェクトおよびすべてのサブ要素に IsReadOnly プロパティを設定します。 (ConfigurationElement から継承されます。)
プロテクト メソッド Unmerge  保存しないすべての値を削除するには、ConfigurationElement オブジェクトを変更します。 (ConfigurationElement から継承されます。)
参照参照

関連項目

BuildProvider クラス
System.Web.Configuration 名前空間
BuildProviderCollection
BuildProvider クラス



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「BuildProvider」の関連用語

BuildProviderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



BuildProviderのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS