VBCodeProvider VBCodeProvider VBCodeProvider VBCodeProvider Class

定義

Visual Basic コード ジェネレーターと Visual Basic コード コンパイラのインスタンスへのアクセスを提供します。Provides access to instances of the Visual Basic code generator and code compiler.

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 コード プロバイダーを使用して、ソース ファイルをコンパイルします。The following example uses either the C# or Visual Basic code provider to compile a source file. 例が入力ファイルの拡張子をチェックし、対応するを使用してCSharpCodeProviderまたはVBCodeProviderコンパイルします。The example checks the input file extension and uses the corresponding CSharpCodeProvider or VBCodeProvider for compilation. 入力ファイルが、実行可能ファイルにコンパイルされ、コンパイル エラーがコンソールに表示されます。The input file is compiled into an executable file, and any compilation errors are displayed to the console.

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 Basic のインスタンスを取得するために使用するメソッドを提供します。ICodeGeneratorICodeCompiler実装します。This class provides methods that can be used to retrieve instances of the Visual Basic ICodeGenerator and ICodeCompiler implementations.

注意

このクラスには、リンク確認要求と、すべてのメンバーに適用されるクラス レベルの継承確認要求が含まれています。This class contains a link demand and an inheritance demand at the class level that applies to all members. 直接の呼び出し元か派生クラスのいずれかに完全信頼アクセス許可がない場合、SecurityException がスローされます。A SecurityException is thrown when either the immediate caller or the derived class does not have full-trust permission.

コンストラクター

VBCodeProvider() VBCodeProvider() VBCodeProvider() VBCodeProvider()

VBCodeProvider クラスの新しいインスタンスを初期化します。Initializes a new instance of the VBCodeProvider class.

VBCodeProvider(IDictionary<String,String>) VBCodeProvider(IDictionary<String,String>) VBCodeProvider(IDictionary<String,String>) VBCodeProvider(IDictionary<String,String>)

指定したプロバイダー オプションを使用して、VBCodeProvider クラスの新しいインスタンスを初期化します。Initializes a new instance of the VBCodeProvider class by using the specified provider options.

プロパティ

CanRaiseEvents CanRaiseEvents CanRaiseEvents CanRaiseEvents

コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。Gets a value indicating whether the component can raise an event.

(Inherited from Component)
Container Container Container Container

IContainer を格納している Component を取得します。Gets the IContainer that contains the Component.

(Inherited from Component)
DesignMode DesignMode DesignMode DesignMode

Component が現在デザイン モードかどうかを示す値を取得します。Gets a value that indicates whether the Component is currently in design mode.

(Inherited from Component)
Events Events Events Events

Component に結び付けられているイベント ハンドラーのリストを取得します。Gets the list of event handlers that are attached to this Component.

(Inherited from Component)
FileExtension FileExtension FileExtension FileExtension

ソース コード ファイルを作成するときに使用するファイル名拡張子を取得します。Gets the file name extension to use when creating source code files.

LanguageOptions LanguageOptions LanguageOptions LanguageOptions

言語機能識別子を取得します。Gets a language features identifier.

Site Site Site Site

ComponentISite を取得または設定します。Gets or sets the ISite of the Component.

(Inherited from Component)

メソッド

CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[]) CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[]) CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[]) CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

指定したコンパイラ設定を使用して、指定した System.CodeDom オブジェクトの配列に含まれている CodeCompileUnit ツリーに基づいてアセンブリをコンパイルします。Compiles an assembly based on the System.CodeDom trees contained in the specified array of CodeCompileUnit objects, using the specified compiler settings.

(Inherited from CodeDomProvider)
CompileAssemblyFromFile(CompilerParameters, String[]) CompileAssemblyFromFile(CompilerParameters, String[]) CompileAssemblyFromFile(CompilerParameters, String[]) CompileAssemblyFromFile(CompilerParameters, String[])

指定したコンパイラ設定を使用して、指定したファイルに格納されているソース コードからアセンブリをコンパイルします。Compiles an assembly from the source code contained in the specified files, using the specified compiler settings.

(Inherited from CodeDomProvider)
CompileAssemblyFromSource(CompilerParameters, String[]) CompileAssemblyFromSource(CompilerParameters, String[]) CompileAssemblyFromSource(CompilerParameters, String[]) CompileAssemblyFromSource(CompilerParameters, String[])

指定したコンパイラ設定を使用して、ソース コードが格納されている指定した文字列の配列からアセンブリをコンパイルします。Compiles an assembly from the specified array of strings containing source code, using the specified compiler settings.

(Inherited from CodeDomProvider)
CreateCompiler() CreateCompiler() CreateCompiler() CreateCompiler()

Visual Basic コード コンパイラのインスタンスを取得します。Gets an instance of the Visual Basic code compiler.

CreateEscapedIdentifier(String) CreateEscapedIdentifier(String) CreateEscapedIdentifier(String) CreateEscapedIdentifier(String)

指定した値のエスケープ識別子を作成します。Creates an escaped identifier for the specified value.

(Inherited from CodeDomProvider)
CreateGenerator() CreateGenerator() CreateGenerator() CreateGenerator()

Visual Basic コード ジェネレーターのインスタンスを取得します。Gets an instance of the Visual Basic code generator.

CreateGenerator(String) CreateGenerator(String) CreateGenerator(String) CreateGenerator(String)

派生クラスでオーバーライドされると、出力用に指定されているファイル名を使用して、新しいコード ジェネレーターを作成します。When overridden in a derived class, creates a new code generator using the specified file name for output.

(Inherited from CodeDomProvider)
CreateGenerator(TextWriter) CreateGenerator(TextWriter) CreateGenerator(TextWriter) CreateGenerator(TextWriter)

派生クラスでオーバーライドされると、出力用に指定されている TextWriter を使用して、新しいコード ジェネレーターを作成します。When overridden in a derived class, creates a new code generator using the specified TextWriter for output.

(Inherited from CodeDomProvider)
CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
CreateParser() CreateParser() CreateParser() CreateParser()

派生クラスでオーバーライドされると、新しいコード パーサーを作成します。When overridden in a derived class, creates a new code parser.

(Inherited from CodeDomProvider)
CreateValidIdentifier(String) CreateValidIdentifier(String) CreateValidIdentifier(String) CreateValidIdentifier(String)

指定した値の有効な識別子を作成します。Creates a valid identifier for the specified value.

(Inherited from CodeDomProvider)
Dispose() Dispose() Dispose() Dispose()

Component によって使用されているすべてのリソースを解放します。Releases all resources used by the Component.

(Inherited from Component)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Component によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(Inherited from Component)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions) GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions) GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions) GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) コンパイル単位のコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。Generates code for the specified Code Document Object Model (CodeDOM) compilation unit and sends it to the specified text writer, using the specified options.

(Inherited from CodeDomProvider)
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions) GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions) GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions) GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) 式のコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。Generates code for the specified Code Document Object Model (CodeDOM) expression and sends it to the specified text writer, using the specified options.

(Inherited from CodeDomProvider)
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions) GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions) GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions) GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

指定したテキスト ライターおよびコード ジェネレーターのオプションを使用して、指定したクラス メンバーのコードを生成します。Generates code for the specified class member using the specified text writer and code generator options.

GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions) GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions) GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions) GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) 名前空間のコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。Generates code for the specified Code Document Object Model (CodeDOM) namespace and sends it to the specified text writer, using the specified options.

(Inherited from CodeDomProvider)
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions) GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions) GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions) GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) ステートメントのコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。Generates code for the specified Code Document Object Model (CodeDOM) statement and sends it to the specified text writer, using the specified options.

(Inherited from CodeDomProvider)
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions) GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions) GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions) GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

指定した CodeDOM (Code Document Object Model) 型宣言のコードを生成し、指定したオプションを使用して、指定したテキスト ライターに生成されたコードを送信します。Generates code for the specified Code Document Object Model (CodeDOM) type declaration and sends it to the specified text writer, using the specified options.

(Inherited from CodeDomProvider)
GetConverter(Type) GetConverter(Type) GetConverter(Type) GetConverter(Type)

指定したオブジェクト型の TypeConverter を取得します。Gets a TypeConverter for the specified type of object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetService(Type) GetService(Type) GetService(Type) GetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。Returns an object that represents a service provided by the Component or by its Container.

(Inherited from Component)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
GetTypeOutput(CodeTypeReference) GetTypeOutput(CodeTypeReference) GetTypeOutput(CodeTypeReference) GetTypeOutput(CodeTypeReference)

指定した CodeTypeReference で示される型を取得します。Gets the type indicated by the specified CodeTypeReference.

(Inherited from CodeDomProvider)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
IsValidIdentifier(String) IsValidIdentifier(String) IsValidIdentifier(String) IsValidIdentifier(String)

指定した値が現在の言語で有効な識別子かどうかを示す値を返します。Returns a value that indicates whether the specified value is a valid identifier for the current language.

(Inherited from CodeDomProvider)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
Parse(TextReader) Parse(TextReader) Parse(TextReader) Parse(TextReader)

指定したテキスト ストリームから読み取ったコードを CodeCompileUnit にコンパイルします。Compiles the code read from the specified text stream into a CodeCompileUnit.

(Inherited from CodeDomProvider)
Supports(GeneratorSupport) Supports(GeneratorSupport) Supports(GeneratorSupport) Supports(GeneratorSupport)

指定したコードを生成できるかどうかを示す値を返します。Returns a value indicating whether the specified code generation support is provided.

(Inherited from CodeDomProvider)
ToString() ToString() ToString() ToString()

Component の名前 (存在する場合) を格納する String を返します。Returns a String containing the name of the Component, if any. このメソッドはオーバーライドできません。This method should not be overridden.

(Inherited from Component)

イベント

Disposed Disposed Disposed Disposed

Dispose() メソッドの呼び出しによってコンポーネントが破棄されると発生します。Occurs when the component is disposed by a call to the Dispose() method.

(Inherited from Component)

セキュリティ

LinkDemand
直前の呼び出し元に対する完全な信頼。for full trust for the immediate caller. このクラスは、部分的に信頼されたコードでは使用できません。This class cannot be used by partially trusted code.

InheritanceDemand
継承クラスの完全な信頼。for full trust for inheritors. 部分的に信頼されたコードでは、このクラスを継承できません。This class cannot be inherited by partially trusted code.

適用対象

こちらもご覧ください