VBCodeProvider 클래스

정의

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 Basic ICodeGeneratorICodeCompiler 구현의 인스턴스를 검색하는 데 사용할 수 있는 메서드를 제공합니다.

메모

이 클래스에는 모든 멤버에 적용되는 클래스 수준의 링크 요청 및 상속 요청이 포함됩니다. 직접 호출자 또는 파생 클래스가 완전 신뢰 권한을 가지지 않은 경우, SecurityException가 발생합니다.

생성자

Name Description
VBCodeProvider()

VBCodeProvider 클래스의 새 인스턴스를 초기화합니다.

VBCodeProvider(IDictionary<String,String>)

지정된 공급자 옵션을 사용하여 클래스의 VBCodeProvider 새 인스턴스를 초기화합니다.

속성

Name Description
CanRaiseEvents

구성 요소가 이벤트를 발생시키는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 Component)
Container

IContainer 포함하는 값을 가져옵니다 Component.

(다음에서 상속됨 Component)
DesignMode

현재 디자인 모드인지 여부를 Component 나타내는 값을 가져옵니다.

(다음에서 상속됨 Component)
Events

Component에 연결된 이벤트 처리기 목록을 가져옵니다.

(다음에서 상속됨 Component)
FileExtension

소스 코드 파일을 만들 때 사용할 파일 이름 확장명을 가져옵니다.

LanguageOptions

언어 기능 식별자를 가져옵니다.

Site

ISite를 가져오거나 Component의 값을 설정합니다.

(다음에서 상속됨 Component)

메서드

Name Description
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(코드 문서 개체 모델) 컴파일 단위에 대한 코드를 생성하고 지정된 옵션을 사용하여 지정된 텍스트 기록기에 보냅니다.

(다음에서 상속됨 CodeDomProvider)
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

지정된 CodeDOM(코드 문서 개체 모델) 식에 대한 코드를 생성하고 지정된 옵션을 사용하여 지정된 텍스트 작성기에 보냅니다.

(다음에서 상속됨 CodeDomProvider)
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

지정된 텍스트 작성기 및 코드 생성기 옵션을 사용하여 지정된 클래스 멤버에 대한 코드를 생성합니다.

GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

지정된 CodeDOM(코드 문서 개체 모델) 네임스페이스에 대한 코드를 생성하고 지정된 옵션을 사용하여 지정된 텍스트 기록기에 보냅니다.

(다음에서 상속됨 CodeDomProvider)
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

지정된 CodeDOM(코드 문서 개체 모델) 문에 대한 코드를 생성하고 지정된 옵션을 사용하여 지정된 텍스트 작성기에 보냅니다.

(다음에서 상속됨 CodeDomProvider)
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

지정된 CodeDOM(코드 문서 개체 모델) 형식 선언에 대한 코드를 생성하고 지정된 옵션을 사용하여 지정된 텍스트 기록기에 보냅니다.

(다음에서 상속됨 CodeDomProvider)
GetConverter(Type)

지정된 개체 형식에 대한 a 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()

String(있는 경우)의 Component이름을 포함하는 값을 반환합니다. 이 메서드는 재정의해서는 안 됩니다.

(다음에서 상속됨 Component)

이벤트

Name Description
Disposed

구성 요소가 메서드 호출에 Dispose() 의해 삭제될 때 발생합니다.

(다음에서 상속됨 Component)

적용 대상

추가 정보