Condividi tramite


CodeDomProvider Classe

Definizione

Fornisce una classe base per CodeDomProvider le implementazioni. Questa classe è astratta.

public ref class CodeDomProvider abstract : System::ComponentModel::Component
public abstract class CodeDomProvider : System.ComponentModel.Component
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class CodeDomProvider : System.ComponentModel.Component
type CodeDomProvider = class
    inherit Component
[<System.Runtime.InteropServices.ComVisible(true)>]
type CodeDomProvider = class
    inherit Component
Public MustInherit Class CodeDomProvider
Inherits Component
Ereditarietà
Derivato
Attributi

Esempio

Il programma di esempio seguente può generare e compilare il codice sorgente in base a un modello CodeDOM di un programma che stampa "Hello World" usando la classe Console. Viene fornita un'interfaccia utente Windows Forms. L'utente può selezionare il linguaggio di programmazione di destinazione da diverse selezioni: C#, Visual Basic e JScript.

using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Microsoft.CSharp;
using Microsoft.VisualBasic;
using Microsoft.JScript;

// This example demonstrates building a Hello World program graph
// using System.CodeDom elements. It calls code generator and
// code compiler methods to build the program using CSharp, VB, or
// JScript.  A Windows Forms interface is included. Note: Code
// must be compiled and linked with the Microsoft.JScript assembly.
namespace CodeDOMExample
{
    class CodeDomExample
    {
        // Build a Hello World program graph using
        // System.CodeDom types.
        public static CodeCompileUnit BuildHelloWorldGraph()
        {
            // Create a new CodeCompileUnit to contain
            // the program graph.
            CodeCompileUnit compileUnit = new CodeCompileUnit();

            // Declare a new namespace called Samples.
            CodeNamespace samples = new CodeNamespace("Samples");
            // Add the new namespace to the compile unit.
            compileUnit.Namespaces.Add(samples);

            // Add the new namespace import for the System namespace.
            samples.Imports.Add(new CodeNamespaceImport("System"));

            // Declare a new type called Class1.
            CodeTypeDeclaration class1 = new CodeTypeDeclaration("Class1");
            // Add the new type to the namespace type collection.
            samples.Types.Add(class1);

            // Declare a new code entry point method.
            CodeEntryPointMethod start = new CodeEntryPointMethod();

            // Create a type reference for the System.Console class.
            CodeTypeReferenceExpression csSystemConsoleType = new CodeTypeReferenceExpression("System.Console");

            // Build a Console.WriteLine statement.
            CodeMethodInvokeExpression cs1 = new CodeMethodInvokeExpression(
                csSystemConsoleType, "WriteLine",
                new CodePrimitiveExpression("Hello World!"));

            // Add the WriteLine call to the statement collection.
            start.Statements.Add(cs1);

            // Build another Console.WriteLine statement.
            CodeMethodInvokeExpression cs2 = new CodeMethodInvokeExpression(
                csSystemConsoleType, "WriteLine",
                new CodePrimitiveExpression("Press the Enter key to continue."));

            // Add the WriteLine call to the statement collection.
            start.Statements.Add(cs2);

            // Build a call to System.Console.ReadLine.
            CodeMethodInvokeExpression csReadLine = new CodeMethodInvokeExpression(
                csSystemConsoleType, "ReadLine");

            // Add the ReadLine statement.
            start.Statements.Add(csReadLine);

            // Add the code entry point method to
            // the Members collection of the type.
            class1.Members.Add(start);

            return compileUnit;
        }

        public static void GenerateCode(CodeDomProvider provider,
            CodeCompileUnit compileunit)
        {
            // Build the source file name with the appropriate
            // language extension.
            String sourceFile;
            if (provider.FileExtension[0] == '.')
            {
                sourceFile = "TestGraph" + provider.FileExtension;
            }
            else
            {
                sourceFile = "TestGraph." + provider.FileExtension;
            }

            // Create an IndentedTextWriter, constructed with
            // a StreamWriter to the source file.
            IndentedTextWriter tw = new IndentedTextWriter(new StreamWriter(sourceFile, false), "    ");
            // Generate source code using the code generator.
            provider.GenerateCodeFromCompileUnit(compileunit, tw, new CodeGeneratorOptions());
            // Close the output file.
            tw.Close();
        }

        public static CompilerResults CompileCode(CodeDomProvider provider,
                                                  String sourceFile,
                                                  String exeFile)
        {
            // Configure a CompilerParameters that links System.dll
            // and produces the specified executable file.
            String[] referenceAssemblies = { "System.dll" };
            CompilerParameters cp = new CompilerParameters(referenceAssemblies,
                                                           exeFile, false);
            // Generate an executable rather than a DLL file.
            cp.GenerateExecutable = true;

            // Invoke compilation.
            CompilerResults cr = provider.CompileAssemblyFromFile(cp, sourceFile);
            // Return the results of compilation.
            return cr;
        }
    }

    public class CodeDomExampleForm : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Button run_button = new System.Windows.Forms.Button();
        private System.Windows.Forms.Button compile_button = new System.Windows.Forms.Button();
        private System.Windows.Forms.Button generate_button = new System.Windows.Forms.Button();
        private System.Windows.Forms.TextBox textBox1 = new System.Windows.Forms.TextBox();
        private System.Windows.Forms.ComboBox comboBox1 = new System.Windows.Forms.ComboBox();
        private System.Windows.Forms.Label label1 = new System.Windows.Forms.Label();

        private void generate_button_Click(object sender, System.EventArgs e)
        {
            CodeDomProvider provider = GetCurrentProvider();
            CodeDomExample.GenerateCode(provider, CodeDomExample.BuildHelloWorldGraph());

            // Build the source file name with the appropriate
            // language extension.
            String sourceFile;
            if (provider.FileExtension[0] == '.')
            {
                sourceFile = "TestGraph" + provider.FileExtension;
            }
            else
            {
                sourceFile = "TestGraph." + provider.FileExtension;
            }

            // Read in the generated source file and
            // display the source text.
            StreamReader sr = new StreamReader(sourceFile);
            textBox1.Text = sr.ReadToEnd();
            sr.Close();
        }

        private void compile_button_Click(object sender, System.EventArgs e)
        {
            CodeDomProvider provider = GetCurrentProvider();

            // Build the source file name with the appropriate
            // language extension.
            String sourceFile;
            if (provider.FileExtension[0] == '.')
            {
                sourceFile = "TestGraph" + provider.FileExtension;
            }
            else
            {
                sourceFile = "TestGraph." + provider.FileExtension;
            }

            // Compile the source file into an executable output file.
            CompilerResults cr = CodeDomExample.CompileCode(provider,
                                                            sourceFile,
                                                            "TestGraph.exe");

            if (cr.Errors.Count > 0)
            {
                // Display compilation errors.
                textBox1.Text = "Errors encountered while building " +
                                sourceFile + " into " + cr.PathToAssembly + ": \r\n\n";
                foreach (CompilerError ce in cr.Errors)
                    textBox1.AppendText(ce.ToString() + "\r\n");
                run_button.Enabled = false;
            }
            else
            {
                textBox1.Text = "Source " + sourceFile + " built into " +
                                cr.PathToAssembly + " with no errors.";
                run_button.Enabled = true;
            }
        }

        private void run_button_Click(object sender,
            System.EventArgs e)
        {
            Process.Start("TestGraph.exe");
        }

        private CodeDomProvider GetCurrentProvider()
        {
            CodeDomProvider provider;
            switch ((string)this.comboBox1.SelectedItem)
            {
                case "CSharp":
                    provider = CodeDomProvider.CreateProvider("CSharp");
                    break;
                case "Visual Basic":
                    provider = CodeDomProvider.CreateProvider("VisualBasic");
                    break;
                case "JScript":
                    provider = CodeDomProvider.CreateProvider("JScript");
                    break;
                default:
                    provider = CodeDomProvider.CreateProvider("CSharp");
                    break;
            }
            return provider;
        }

        public CodeDomExampleForm()
        {
            this.SuspendLayout();
            // Set properties for label1
            this.label1.Location = new System.Drawing.Point(395, 20);
            this.label1.Size = new Size(180, 22);
            this.label1.Text = "Select a programming language:";
            // Set properties for comboBox1
            this.comboBox1.Location = new System.Drawing.Point(560, 16);
            this.comboBox1.Size = new Size(190, 23);
            this.comboBox1.Name = "comboBox1";
            this.comboBox1.Items.AddRange(new string[] { "CSharp", "Visual Basic", "JScript" });
            this.comboBox1.Anchor = System.Windows.Forms.AnchorStyles.Left
                                    | System.Windows.Forms.AnchorStyles.Right
                                    | System.Windows.Forms.AnchorStyles.Top;
            this.comboBox1.SelectedIndex = 0;
            // Set properties for generate_button.
            this.generate_button.Location = new System.Drawing.Point(8, 16);
            this.generate_button.Name = "generate_button";
            this.generate_button.Size = new System.Drawing.Size(120, 23);
            this.generate_button.Text = "Generate Code";
            this.generate_button.Click += new System.EventHandler(this.generate_button_Click);
            // Set properties for compile_button.
            this.compile_button.Location = new System.Drawing.Point(136, 16);
            this.compile_button.Name = "compile_button";
            this.compile_button.Size = new System.Drawing.Size(120, 23);
            this.compile_button.Text = "Compile";
            this.compile_button.Click += new System.EventHandler(this.compile_button_Click);
            // Set properties for run_button.
            this.run_button.Enabled = false;
            this.run_button.Location = new System.Drawing.Point(264, 16);
            this.run_button.Name = "run_button";
            this.run_button.Size = new System.Drawing.Size(120, 23);
            this.run_button.Text = "Run";
            this.run_button.Click += new System.EventHandler(this.run_button_Click);
            // Set properties for textBox1.
            this.textBox1.Anchor = (System.Windows.Forms.AnchorStyles.Top
                                     | System.Windows.Forms.AnchorStyles.Bottom
                                     | System.Windows.Forms.AnchorStyles.Left
                                     | System.Windows.Forms.AnchorStyles.Right);
            this.textBox1.Location = new System.Drawing.Point(8, 48);
            this.textBox1.Multiline = true;
            this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(744, 280);
            this.textBox1.Text = "";
            // Set properties for the CodeDomExampleForm.
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(768, 340);
            this.MinimumSize = new System.Drawing.Size(750, 340);
            this.Controls.AddRange(new System.Windows.Forms.Control[] {this.textBox1,
                this.run_button, this.compile_button, this.generate_button,
                this.comboBox1, this.label1 });
            this.Name = "CodeDomExampleForm";
            this.Text = "CodeDom Hello World Example";
            this.ResumeLayout(false);
        }

        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
        }

        [STAThread]
        static void Main()
        {
            Application.Run(new CodeDomExampleForm());
        }
    }
}
Imports System.CodeDom
Imports System.CodeDom.Compiler
Imports System.Collections
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Drawing
Imports System.IO
Imports System.Windows.Forms
Imports Microsoft.CSharp
Imports Microsoft.JScript

' This example demonstrates building a Hello World program graph 
' using System.CodeDom elements. It calls code generator and
' code compiler methods to build the program using CSharp, VB, or
' JScript.  A Windows Forms interface is included. Note: Code
' must be compiled and linked with the Microsoft.JScript assembly. 
Namespace CodeDOMExample

    Class CodeDomExample
        ' Build a Hello World program graph using 
        ' System.CodeDom types.
        Public Shared Function BuildHelloWorldGraph() As CodeCompileUnit

            ' Create a new CodeCompileUnit to contain 
            ' the program graph.
            Dim compileUnit As New CodeCompileUnit()

            ' Declare a new namespace called Samples.
            Dim samples As New CodeNamespace("Samples")

            ' Add the new namespace to the compile unit.
            compileUnit.Namespaces.Add(samples)

            ' Add the new namespace import for the System namespace.
            samples.Imports.Add(New CodeNamespaceImport("System"))

            ' Declare a new type called Class1.
            Dim class1 As New CodeTypeDeclaration("Class1")

            ' Add the new type to the namespace type collection.
            samples.Types.Add(class1)

            ' Declare a new code entry point method.
            Dim start As New CodeEntryPointMethod()

            ' Create a type reference for the System.Console class.
            Dim csSystemConsoleType As New CodeTypeReferenceExpression( _
                "System.Console")

            ' Build a Console.WriteLine statement.
            Dim cs1 As New CodeMethodInvokeExpression( _
                csSystemConsoleType, "WriteLine", _
                New CodePrimitiveExpression("Hello World!"))

            ' Add the WriteLine call to the statement collection.
            start.Statements.Add(cs1)

            ' Build another Console.WriteLine statement.
            Dim cs2 As New CodeMethodInvokeExpression( _
                csSystemConsoleType, "WriteLine", _
                New CodePrimitiveExpression("Press the Enter key to continue."))

            ' Add the WriteLine call to the statement collection.
            start.Statements.Add(cs2)

            ' Build a call to System.Console.ReadLine.
            Dim csReadLine As New CodeMethodInvokeExpression( _
                csSystemConsoleType, "ReadLine")

            ' Add the ReadLine statement.
            start.Statements.Add(csReadLine)

            ' Add the code entry point method to
            ' the Members collection of the type.
            class1.Members.Add(start)

            Return compileUnit
        End Function

        Public Shared Sub GenerateCode(ByVal provider As CodeDomProvider, ByVal compileunit As CodeCompileUnit)

            ' Build the source file name with the appropriate
            ' language extension.
            Dim sourceFile As String
            If provider.FileExtension.StartsWith(".") Then
                sourceFile = "TestGraph" + provider.FileExtension
            Else
                sourceFile = "TestGraph." + provider.FileExtension
            End If

            ' Create an IndentedTextWriter, constructed with
            ' a StreamWriter to the source file.
            Dim tw As New IndentedTextWriter(New StreamWriter(sourceFile, False), "    ")
            ' Generate source code using the code generator.
            provider.GenerateCodeFromCompileUnit(compileunit, tw, New CodeGeneratorOptions())
            ' Close the output file.
            tw.Close()
        End Sub

        Public Shared Function CompileCode(ByVal provider As CodeDomProvider, _
                                           ByVal sourceFile As String, _
                                           ByVal exeFile As String) As CompilerResults

            ' Configure a CompilerParameters that links System.dll
            ' and produces the specified executable file.
            Dim referenceAssemblies As String() = {"System.dll"}
            Dim cp As New CompilerParameters(referenceAssemblies, exeFile, False)

            ' Generate an executable rather than a DLL file.
            cp.GenerateExecutable = True

            ' Invoke compilation.
            Dim cr As CompilerResults = provider.CompileAssemblyFromFile(cp, _
                sourceFile)
            ' Return the results of compilation.
            Return cr
        End Function
    End Class

    Public Class CodeDomExampleForm
        Inherits System.Windows.Forms.Form
        Private run_button As New System.Windows.Forms.Button()
        Private compile_button As New System.Windows.Forms.Button()
        Private generate_button As New System.Windows.Forms.Button()
        Private textBox1 As New System.Windows.Forms.TextBox()
        Private comboBox1 As New System.Windows.Forms.ComboBox()
        Private label1 As New System.Windows.Forms.Label()

        Private Sub generate_button_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim provider As CodeDomProvider = GetCurrentProvider()
            CodeDomExample.GenerateCode(provider, CodeDomExample.BuildHelloWorldGraph())

            ' Build the source file name with the appropriate
            ' language extension.
            Dim sourceFile As String
            If provider.FileExtension.StartsWith(".") Then
                sourceFile = "TestGraph" + provider.FileExtension
            Else
                sourceFile = "TestGraph." + provider.FileExtension
            End If

            ' Read in the generated source file and
            ' display the source text.
            Dim sr As New StreamReader(sourceFile)
            textBox1.Text = sr.ReadToEnd()
            sr.Close()
        End Sub

        Private Sub compile_button_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim provider As CodeDomProvider = GetCurrentProvider()

            ' Build the source file name with the appropriate
            ' language extension.
            Dim sourceFile As String
            If provider.FileExtension.StartsWith(".") Then
                sourceFile = "TestGraph" + provider.FileExtension
            Else
                sourceFile = "TestGraph." + provider.FileExtension
            End If

            Dim cr As CompilerResults = CodeDomExample.CompileCode(provider, _
                                                                   sourceFile, _
                                                                   "TestGraph.EXE")

            If cr.Errors.Count > 0 Then
                ' Display compilation errors.
                textBox1.Text = "Errors encountered while building " + _
                                sourceFile + " into " + _
                                cr.PathToAssembly + ": " + ControlChars.CrLf

                Dim ce As System.CodeDom.Compiler.CompilerError
                For Each ce In cr.Errors
                    textBox1.AppendText(ce.ToString() + ControlChars.CrLf)
                Next ce
                run_button.Enabled = False
            Else
                textBox1.Text = "Source " + sourceFile + " built into " + _
                                cr.PathToAssembly + " with no errors."
                run_button.Enabled = True
            End If
        End Sub

        Private Sub run_button_Click(ByVal sender As Object, _
            ByVal e As System.EventArgs)

            Process.Start("TestGraph.EXE")
        End Sub

        Private Function GetCurrentProvider() As CodeDomProvider

            Dim provider As CodeDomProvider
            Select Case CStr(Me.comboBox1.SelectedItem)
                Case "CSharp"
                    provider = CodeDomProvider.CreateProvider("CSharp")
                Case "Visual Basic"
                    provider = CodeDomProvider.CreateProvider("VisualBasic")
                Case "JScript"
                    provider = CodeDomProvider.CreateProvider("JScript")
                Case Else
                    provider = CodeDomProvider.CreateProvider("CSharp")
            End Select
            Return provider
        End Function

        Public Sub New()
            Me.SuspendLayout()
            ' Set properties for label1.
            Me.label1.Location = New System.Drawing.Point(395, 20)
            Me.label1.Size = New Size(180, 22)
            Me.label1.Text = "Select a programming language:"
            ' Set properties for comboBox1.
            Me.comboBox1.Location = New System.Drawing.Point(560, 16)
            Me.comboBox1.Size = New Size(190, 23)
            Me.comboBox1.Name = "comboBox1"
            Me.comboBox1.Items.AddRange(New String() {"CSharp", "Visual Basic", "JScript"})
            Me.comboBox1.Anchor = System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right Or System.Windows.Forms.AnchorStyles.Top
            Me.comboBox1.SelectedIndex = 0
            ' Set properties for generate_button.
            Me.generate_button.Location = New System.Drawing.Point(8, 16)
            Me.generate_button.Name = "generate_button"
            Me.generate_button.Size = New System.Drawing.Size(120, 23)
            Me.generate_button.Text = "Generate Code"
            AddHandler generate_button.Click, AddressOf Me.generate_button_Click
            ' Set properties for compile_button.
            Me.compile_button.Location = New System.Drawing.Point(136, 16)
            Me.compile_button.Name = "compile_button"
            Me.compile_button.Size = New System.Drawing.Size(120, 23)
            Me.compile_button.Text = "Compile"
            AddHandler compile_button.Click, AddressOf Me.compile_button_Click
            ' Set properties for run_button.
            Me.run_button.Enabled = False
            Me.run_button.Location = New System.Drawing.Point(264, 16)
            Me.run_button.Name = "run_button"
            Me.run_button.Size = New System.Drawing.Size(120, 23)
            Me.run_button.Text = "Run"
            AddHandler run_button.Click, AddressOf Me.run_button_Click
            ' Set properties for textBox1.
            Me.textBox1.Anchor = System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right
            Me.textBox1.Location = New System.Drawing.Point(8, 48)
            Me.textBox1.Multiline = True
            Me.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
            Me.textBox1.Name = "textBox1"
            Me.textBox1.Size = New System.Drawing.Size(744, 280)
            Me.textBox1.Text = ""
            ' Set properties for the CodeDomExampleForm.
            Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
            Me.ClientSize = New System.Drawing.Size(768, 340)
            Me.MinimumSize = New System.Drawing.Size(750, 340)
            Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.textBox1, _
                Me.run_button, Me.compile_button, Me.generate_button, _
                Me.comboBox1, Me.label1})
            Me.Name = "CodeDomExampleForm"
            Me.Text = "CodeDom Hello World Example"
            Me.ResumeLayout(False)
        End Sub

        Protected Overloads Sub Dispose(ByVal disposing As Boolean)
            MyBase.Dispose(disposing)
        End Sub

        <STAThread()> _
        Shared Sub Main()
            Application.Run(New CodeDomExampleForm())
        End Sub
    End Class
End Namespace

Commenti

Un CodeDomProvider oggetto può essere usato per creare e recuperare istanze di generatori di codice e compilatori di codice. I generatori di codice possono essere usati per generare codice in un linguaggio specifico e i compilatori di codice possono essere usati per compilare codice in assembly.

Un'implementazione CodeDomProvider fornisce in genere interfacce di generazione e/o compilazione del codice per la generazione di codice e la gestione della compilazione per un singolo linguaggio di programmazione. Diversi linguaggi sono supportati dalle implementazioni di CodeDomProvider fornite con Windows SDK. Questi linguaggi includono C#, Visual Basic, C++e JScript. Gli sviluppatori o i fornitori di compilatori possono implementare le ICodeGenerator interfacce e ICodeCompiler e fornire un CodeDomProvider oggetto che estende il supporto CodeDOM ad altri linguaggi di programmazione.

L'elemento< system.codedom> nel file di configurazione del computer (Machine.config) fornisce un meccanismo per sviluppatori e fornitori di compilatori per aggiungere impostazioni di configurazione per altre CodeDomProvider implementazioni.

La CodeDomProvider classe fornisce metodi statici per individuare ed enumerare le CodeDomProvider implementazioni in un computer. Il GetAllCompilerInfo metodo restituisce le impostazioni per tutte le CodeDomProvider implementazioni in un computer. Il GetCompilerInfo metodo restituisce le impostazioni per un'implementazione specifica CodeDomProvider , in base al nome del linguaggio di programmazione. Il CreateProvider metodo restituisce un'istanza di un'implementazione CodeDomProvider per un linguaggio specifico.

Per altre informazioni sulle impostazioni del provider di linguaggio nel file di configurazione, vedere Schema delle impostazioni del compilatore e del provider di linguaggio.

Annotazioni

Questa classe effettua una richiesta di collegamento e una richiesta di ereditarietà a livello di classe. Viene SecurityException generata un'eccezione se il chiamante immediato o la classe derivata non dispone dell'autorizzazione di attendibilità completa. Per informazioni dettagliate sulle richieste di sicurezza, vedere Richieste di collegamento.

Note per gli implementatori

In .NET Framework 1.0 e 1.1 i provider di codice sono costituiti da implementazioni di CodeDomProvider, ICodeGenerator, ICodeParser e ICodeCompiler. A partire da .NET Framework 2.0, i metodi CreateGenerator(), CreateParser() e CreateCompiler() sono obsoleti e i metodi di ICodeGenerator e ICodeCompiler sono direttamente disponibili nella classe CodeDomProvider. È consigliabile eseguire l'override di tali metodi nell'implementazione del provider di codice e non chiamare i metodi di base.

Costruttori

Nome Descrizione
CodeDomProvider()

Inizializza una nuova istanza della classe CodeDomProvider.

Proprietà

Nome Descrizione
CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.

(Ereditato da Component)
Container

Ottiene l'oggetto IContainer contenente l'oggetto Component.

(Ereditato da Component)
DesignMode

Ottiene un valore che indica se è Component attualmente in modalità progettazione.

(Ereditato da Component)
Events

Ottiene l'elenco dei gestori eventi associati a questo Componentoggetto .

(Ereditato da Component)
FileExtension

Ottiene l'estensione del nome file predefinita da utilizzare per i file di codice sorgente nella lingua corrente.

LanguageOptions

Ottiene un identificatore delle funzionalità della lingua.

Site

Ottiene o imposta il ISite del Component.

(Ereditato da Component)

Metodi

Nome Descrizione
CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Compila un assembly basato sugli System.CodeDom alberi contenuti nella matrice di CodeCompileUnit oggetti specificata, usando le impostazioni del compilatore specificate.

CompileAssemblyFromFile(CompilerParameters, String[])

Compila un assembly dal codice sorgente contenuto nei file specificati, usando le impostazioni del compilatore specificate.

CompileAssemblyFromSource(CompilerParameters, String[])

Compila un assembly dalla matrice di stringhe specificata contenente il codice sorgente, usando le impostazioni del compilatore specificate.

CreateCompiler()
Obsoleti.
Obsoleti.

Quando sottoposto a override in una classe derivata, crea un nuovo compilatore di codice.

CreateEscapedIdentifier(String)

Crea un identificatore di escape per il valore specificato.

CreateGenerator()
Obsoleti.
Obsoleti.

Quando sottoposto a override in una classe derivata, crea un nuovo generatore di codice.

CreateGenerator(String)

Quando sottoposto a override in una classe derivata, crea un nuovo generatore di codice usando il nome file specificato per l'output.

CreateGenerator(TextWriter)

Quando sottoposto a override in una classe derivata, crea un nuovo generatore di codice usando l'oggetto specificato TextWriter per l'output.

CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
CreateParser()
Obsoleti.
Obsoleti.

Quando sottoposto a override in una classe derivata, crea un nuovo parser di codice.

CreateProvider(String, IDictionary<String,String>)

Ottiene un'istanza CodeDomProvider per la lingua e le opzioni del provider specificate.

CreateProvider(String)

Ottiene un'istanza CodeDomProvider per la lingua specificata.

CreateValidIdentifier(String)

Crea un identificatore valido per il valore specificato.

Dispose()

Rilascia tutte le risorse usate da Component.

(Ereditato da Component)
Dispose(Boolean)

Rilascia le risorse non gestite usate da Component e, facoltativamente, rilascia le risorse gestite.

(Ereditato da Component)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

Genera il codice per l'unità di compilazione Code DOCUMENT Object Model (CodeDOM) specificata e lo invia al writer di testo specificato, usando le opzioni specificate.

GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

Genera il codice per l'espressione Code DOCUMENT Object Model (CodeDOM) specificata e lo invia al writer di testo specificato, usando le opzioni specificate.

GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Genera il codice per la dichiarazione di membro Code DOCUMENT Object Model (CodeDOM) specificata e lo invia al writer di testo specificato, usando le opzioni specificate.

GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Genera il codice per lo spazio dei nomi Code DOCUMENT Object Model (CodeDOM) specificato e lo invia al writer di testo specificato, usando le opzioni specificate.

GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

Genera il codice per l'istruzione Code DOCUMENT Object Model (CodeDOM) specificata e lo invia al writer di testo specificato, usando le opzioni specificate.

GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

Genera il codice per la dichiarazione di tipo CodeDOM (Code Document Object Model) specificata e lo invia al writer di testo specificato, usando le opzioni specificate.

GetAllCompilerInfo()

Restituisce le impostazioni di configurazione del provider di linguaggio e del compilatore per il computer.

GetCompilerInfo(String)

Restituisce il provider di linguaggio e le impostazioni di configurazione del compilatore per il linguaggio specificato.

GetConverter(Type)

Ottiene un TypeConverter oggetto per il tipo di dati specificato.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLanguageFromExtension(String)

Restituisce un nome di lingua associato all'estensione di file specificata, come configurato nella sezione di configurazione del CodeDomProvider compilatore.

GetLifetimeService()
Obsoleti.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetService(Type)

Restituisce un oggetto che rappresenta un servizio fornito da Component o da Container.

(Ereditato da Component)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
GetTypeOutput(CodeTypeReference)

Ottiene il tipo indicato dall'oggetto specificato CodeTypeReference.

InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
IsDefinedExtension(String)

Verifica se un'estensione di file ha un'implementazione associata CodeDomProvider configurata nel computer.

IsDefinedLanguage(String)

Verifica se nel computer è configurata un'implementazione di un CodeDomProvider linguaggio.

IsValidIdentifier(String)

Restituisce un valore che indica se il valore specificato è un identificatore valido per la lingua corrente.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto corrente MarshalByRefObject .

(Ereditato da MarshalByRefObject)
Parse(TextReader)

Compila il codice letto dal flusso di testo specificato in un oggetto CodeCompileUnit.

Supports(GeneratorSupport)

Restituisce un valore che indica se viene fornito il supporto per la generazione di codice specificato.

ToString()

Restituisce un oggetto String contenente il nome dell'oggetto Component, se presente. Questo metodo non deve essere sottoposto a override.

(Ereditato da Component)

Eventi

Nome Descrizione
Disposed

Si verifica quando il componente viene eliminato da una chiamata al Dispose() metodo .

(Ereditato da Component)

Si applica a

Vedi anche