VBCodeProvider クラス

定義

Visual Basic コード ジェネレーターと Visual Basic コード コンパイラのインスタンスへのアクセスを提供します。

public ref class VBCodeProvider : System::CodeDom::Compiler::CodeDomProvider
public class VBCodeProvider : System.CodeDom.Compiler.CodeDomProvider
type VBCodeProvider = class
    inherit CodeDomProvider
Public Class VBCodeProvider
Inherits CodeDomProvider
継承

次の例では、C# または Visual Basic コード プロバイダーを使用して、ソース ファイルをコンパイルします。 例が入力ファイルの拡張子をチェックし、対応するを使用してCSharpCodeProviderまたはVBCodeProviderコンパイルします。 入力ファイルが、実行可能ファイルにコンパイルされ、コンパイル エラーがコンソールに表示されます。

public static bool CompileExecutable(String sourceName)
{
    FileInfo sourceFile = new FileInfo(sourceName);
    CodeDomProvider provider = null;
    bool compileOk = false;

    // Select the code provider based on the input file extension.
    if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) == ".CS")
    {
        provider = CodeDomProvider.CreateProvider("CSharp");
    }
    else if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) == ".VB")
    {
        provider = CodeDomProvider.CreateProvider("VisualBasic");
    }
    else
    {
        Console.WriteLine("Source file must have a .cs or .vb extension");
    }

    if (provider != null)
    {

        // Format the executable file name.
        // Build the output assembly path using the current directory
        // and <source>_cs.exe or <source>_vb.exe.

        String exeName = String.Format(@"{0}\{1}.exe",
            System.Environment.CurrentDirectory,
            sourceFile.Name.Replace(".", "_"));

        CompilerParameters cp = new CompilerParameters();

        // Generate an executable instead of
        // a class library.
        cp.GenerateExecutable = true;

        // Specify the assembly file name to generate.
        cp.OutputAssembly = exeName;

        // Save the assembly as a physical file.
        cp.GenerateInMemory = false;

        // Set whether to treat all warnings as errors.
        cp.TreatWarningsAsErrors = false;

        // Invoke compilation of the source file.
        CompilerResults cr = provider.CompileAssemblyFromFile(cp,
            sourceName);

        if(cr.Errors.Count > 0)
        {
            // Display compilation errors.
            Console.WriteLine("Errors building {0} into {1}",
                sourceName, cr.PathToAssembly);
            foreach(CompilerError ce in cr.Errors)
            {
                Console.WriteLine("  {0}", ce.ToString());
                Console.WriteLine();
            }
        }
        else
        {
            // Display a successful compilation message.
            Console.WriteLine("Source {0} built into {1} successfully.",
                sourceName, cr.PathToAssembly);
        }

        // Return the results of the compilation.
        if (cr.Errors.Count > 0)
        {
            compileOk = false;
        }
        else
        {
            compileOk = true;
        }
    }
    return compileOk;
}
       Public Shared Function CompileExecutable(sourceName As String) As Boolean
           Dim sourceFile As FileInfo = New FileInfo(sourceName)
           Dim provider As CodeDomProvider = Nothing
           Dim compileOk As Boolean = False

           ' Select the code provider based on the input file extension.
           If sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) = ".CS"

               provider = CodeDomProvider.CreateProvider("CSharp")

           ElseIf sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) = ".VB"

               provider = CodeDomProvider.CreateProvider("VisualBasic")

           Else
               Console.WriteLine("Source file must have a .cs or .vb extension")
           End If

           If Not provider Is Nothing

               ' Format the executable file name.
               ' Build the output assembly path using the current directory
               ' and <source>_cs.exe or <source>_vb.exe.

               Dim exeName As String = String.Format("{0}\{1}.exe", _
                   System.Environment.CurrentDirectory, _
                   sourceFile.Name.Replace(".", "_"))

               Dim cp As CompilerParameters = new CompilerParameters()

               ' Generate an executable instead of 
               ' a class library.
               cp.GenerateExecutable = True

               ' Specify the assembly file name to generate.
               cp.OutputAssembly = exeName
   
               ' Save the assembly as a physical file.
               cp.GenerateInMemory = False
   
               ' Set whether to treat all warnings as errors.
               cp.TreatWarningsAsErrors = False

               ' Invoke compilation of the source file.
               Dim cr As CompilerResults = provider.CompileAssemblyFromFile(cp, _
                   sourceName)
   
               If cr.Errors.Count > 0
                   ' Display compilation errors.
                   Console.WriteLine("Errors building {0} into {1}", _
                       sourceName, cr.PathToAssembly)

                   Dim ce As CompilerError
                   For Each ce In cr.Errors
                       Console.WriteLine("  {0}", ce.ToString())
                       Console.WriteLine()
                   Next ce
               Else
                   ' Display a successful compilation message.
                   Console.WriteLine("Source {0} built into {1} successfully.", _
                       sourceName, cr.PathToAssembly)
               End If
             
               ' Return the results of the compilation.
               If cr.Errors.Count > 0
                   compileOk = False
               Else 
                   compileOk = True
               End If
           End If
           return compileOk

       End Function

注釈

このクラスは、Visual BasicICodeGeneratorICodeCompiler実装のインスタンスを取得するために使用できるメソッドを提供します。

注意

このクラスには、リンク確認要求と、すべてのメンバーに適用されるクラス レベルの継承確認要求が含まれています。 直接の呼び出し元か派生クラスのいずれかに完全信頼アクセス許可がない場合、SecurityException がスローされます。

コンストラクター

VBCodeProvider()

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

VBCodeProvider(IDictionary<String,String>)

指定したプロバイダー オプションを使用して、VBCodeProvider クラスの新しいインスタンスを初期化します。

プロパティ

CanRaiseEvents

コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。

(継承元 Component)
Container

IContainer を含む Component を取得します。

(継承元 Component)
DesignMode

Component が現在デザイン モードかどうかを示す値を取得します。

(継承元 Component)
Events

Component に結び付けられているイベント ハンドラーのリストを取得します。

(継承元 Component)
FileExtension

ソース コード ファイルを作成するときに使用するファイル名拡張子を取得します。

LanguageOptions

言語機能識別子を取得します。

Site

ComponentISite を取得または設定します。

(継承元 Component)

メソッド

CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

指定したコンパイラ設定を使用して、指定した System.CodeDom オブジェクトの配列に含まれている CodeCompileUnit ツリーに基づいてアセンブリをコンパイルします。

(継承元 CodeDomProvider)
CompileAssemblyFromFile(CompilerParameters, String[])

指定したコンパイラ設定を使用して、指定したファイルに格納されているソース コードからアセンブリをコンパイルします。

(継承元 CodeDomProvider)
CompileAssemblyFromSource(CompilerParameters, String[])

指定したコンパイラ設定を使用して、ソース コードが格納されている指定した文字列の配列からアセンブリをコンパイルします。

(継承元 CodeDomProvider)
CreateCompiler()
互換性のために残されています。
互換性のために残されています。
互換性のために残されています。

Visual Basic コード コンパイラのインスタンスを取得します。

CreateEscapedIdentifier(String)

指定した値のエスケープ識別子を作成します。

(継承元 CodeDomProvider)
CreateGenerator()
互換性のために残されています。
互換性のために残されています。
互換性のために残されています。

Visual Basic コード ジェネレーターのインスタンスを取得します。

CreateGenerator(String)

派生クラスでオーバーライドされると、出力用に指定されているファイル名を使用して、新しいコード ジェネレーターを作成します。

(継承元 CodeDomProvider)
CreateGenerator(TextWriter)

派生クラスでオーバーライドされると、出力用に指定されている TextWriter を使用して、新しいコード ジェネレーターを作成します。

(継承元 CodeDomProvider)
CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
CreateParser()
互換性のために残されています。
互換性のために残されています。
互換性のために残されています。

派生クラスでオーバーライドされると、新しいコード パーサーを作成します。

(継承元 CodeDomProvider)
CreateValidIdentifier(String)

指定した値の有効な識別子を作成します。

(継承元 CodeDomProvider)
Dispose()

Component によって使用されているすべてのリソースを解放します。

(継承元 Component)
Dispose(Boolean)

Component によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

(継承元 Component)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) コンパイル単位のコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。

(継承元 CodeDomProvider)
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) 式のコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。

(継承元 CodeDomProvider)
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

指定したテキスト ライターおよびコード ジェネレーターのオプションを使用して、指定したクラス メンバーのコードを生成します。

GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) メンバー宣言のコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。

(継承元 CodeDomProvider)
GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) 名前空間のコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。

(継承元 CodeDomProvider)
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) ステートメントのコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。

(継承元 CodeDomProvider)
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) 型宣言のコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。

(継承元 CodeDomProvider)
GetConverter(Type)

指定したオブジェクト型の TypeConverter を取得します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
互換性のために残されています。

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。

(継承元 Component)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GetTypeOutput(CodeTypeReference)

指定した CodeTypeReference で示される型を取得します。

(継承元 CodeDomProvider)
InitializeLifetimeService()
互換性のために残されています。

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
IsValidIdentifier(String)

指定した値が現在の言語で有効な識別子かどうかを示す値を返します。

(継承元 CodeDomProvider)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
Parse(TextReader)

指定したテキスト ストリームから読み取ったコードを CodeCompileUnit にコンパイルします。

(継承元 CodeDomProvider)
Supports(GeneratorSupport)

指定したコードを生成できるかどうかを示す値を返します。

(継承元 CodeDomProvider)
ToString()

Component の名前 (存在する場合) を格納する String を返します。 このメソッドはオーバーライドできません。

(継承元 Component)

イベント

Disposed

Dispose() メソッドの呼び出しによってコンポーネントが破棄されるときに発生します。

(継承元 Component)

適用対象

こちらもご覧ください