Classe CSharpCodeProvider

 

Data di pubblicazione: ottobre 2016

Fornisce l'accesso alle istanze del generatore e del compilatore di codice C#.

Spazio dei nomi:   Microsoft.CSharp
Assembly:  System (in System.dll)

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.CodeDom.Compiler.CodeDomProvider
        Microsoft.CSharp.CSharpCodeProvider

[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public class CSharpCodeProvider : CodeDomProvider

NomeDescrizione
System_CAPS_pubmethodCSharpCodeProvider()

Inizializza una nuova istanza della classe CSharpCodeProvider.

System_CAPS_pubmethodCSharpCodeProvider(IDictionary<String, String>)

Inizializza una nuova istanza della classe CSharpCodeProvider tramite le opzioni del provider specificate.

NomeDescrizione
System_CAPS_protpropertyCanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.(Ereditato da Component.)

System_CAPS_pubpropertyContainer

Ottiene il IContainer che contiene il Component.(Ereditato da Component.)

System_CAPS_protpropertyDesignMode

Ottiene un valore che indica se il Component è attualmente in modalità progettazione.(Ereditato da Component.)

System_CAPS_protpropertyEvents

Ottiene l'elenco di gestori eventi associati a questo Component.(Ereditato da Component.)

System_CAPS_pubpropertyFileExtension

Ottiene l'estensione di file da usare per la creazione di file di codice sorgente.(Esegue l'override di CodeDomProvider.FileExtension.)

System_CAPS_pubpropertyLanguageOptions

Ottiene un identificatore delle funzionalità del linguaggio.(Ereditato da CodeDomProvider.)

System_CAPS_pubpropertySite

Ottiene o imposta il ISite di Component.(Ereditato da Component.)

NomeDescrizione
System_CAPS_pubmethodCompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[])

Compila un assembly basato sul System.CodeDom alberi contenuti nella matrice specificata di CodeCompileUnit oggetti, utilizzando le impostazioni del compilatore specificato.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodCompileAssemblyFromFile(CompilerParameters, String[])

Compila un assembly dal codice sorgente incluso nei file specificati, utilizzando le impostazioni del compilatore specificato.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodCompileAssemblyFromSource(CompilerParameters, String[])

Compila un assembly dalla matrice specificata di stringhe contenenti codice sorgente, utilizzando le impostazioni del compilatore specificato.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodCreateCompiler()

Obsoleto. Ottiene un'istanza del compilatore di codice C#.(Esegue l'override di CodeDomProvider.CreateCompiler().)

System_CAPS_pubmethodCreateEscapedIdentifier(String)

Crea un identificatore di escape per il valore specificato.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodCreateGenerator()

Obsoleto. Ottiene un'istanza del generatore di codice C#.(Esegue l'override di CodeDomProvider.CreateGenerator().)

System_CAPS_pubmethodCreateGenerator(String)

Quando sottoposto a override in una classe derivata, crea un nuovo generatore di codice utilizzando il nome file specificato per l'output.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodCreateGenerator(TextWriter)

Quando sottoposto a override in una classe derivata, crea un nuovo generatore di codice utilizzando l'oggetto specificato TextWriter per l'output.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodCreateObjRef(Type)

Crea un oggetto che contiene le informazioni necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.(Ereditato da MarshalByRefObject.)

System_CAPS_pubmethodCreateParser()

Obsoleto. Quando sottoposto a override in una classe derivata, crea un nuovo parser di codice.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodCreateValidIdentifier(String)

Crea un identificatore valido per il valore specificato.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodDispose()

Rilascia tutte le risorse usate da Component.(Ereditato da Component.)

System_CAPS_protmethodDispose(Boolean)

Rilascia le risorse non gestite usate da Component e, facoltativamente, le risorse gestite.(Ereditato da Component.)

System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.(Ereditato da Object.)

System_CAPS_protmethodFinalize()

Rilascia risorse non gestite ed esegue altre operazioni di pulizia prima che la classe Component venga recuperata tramite Garbage Collection.(Ereditato da Component.)

System_CAPS_pubmethodGenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions)

Genera codice per l'unità di compilazione di Code Document Object Model (CodeDOM) specificato e lo invia al writer di testo specificato, utilizzando le opzioni specificate.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodGenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions)

Genera codice per l'espressione Code Document Object Model (CodeDOM) specificata e lo invia al writer di testo specificato, utilizzando le opzioni specificate.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodGenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions)

Genera codice per il membro della classe specificato usando le opzioni del writer di testo e del generatore di codice specificate.(Esegue l'override di CodeDomProvider.GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions).)

System_CAPS_pubmethodGenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions)

Genera codice per lo spazio dei nomi di Code Document Object Model (CodeDOM) specificato e lo invia al writer di testo specificato, utilizzando le opzioni specificate.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodGenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions)

Genera codice per l'istruzione Code Document Object Model (CodeDOM) specificata e lo invia al writer di testo specificato, utilizzando le opzioni specificate.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodGenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions)

Genera codice per la dichiarazione di tipo Code Document Object Model (CodeDOM) specificato e lo invia al writer di testo specificato, utilizzando le opzioni specificate.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodGetConverter(Type)

Ottiene un oggetto TypeConverter per il tipo di oggetto specificato.(Esegue l'override di CodeDomProvider.GetConverter(Type).)

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetLifetimeService()

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.(Ereditato da MarshalByRefObject.)

System_CAPS_protmethodGetService(Type)

Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container.(Ereditato da Component.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_pubmethodGetTypeOutput(CodeTypeReference)

Ottiene il tipo indicato nel valore CodeTypeReference.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodInitializeLifetimeService()

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.(Ereditato da MarshalByRefObject.)

System_CAPS_pubmethodIsValidIdentifier(String)

Restituisce un valore che indica se il valore specificato è un identificatore valido per la lingua corrente.(Ereditato da CodeDomProvider.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto corrente MarshalByRefObject oggetto.(Ereditato da MarshalByRefObject.)

System_CAPS_pubmethodParse(TextReader)

Compila il codice letto dal flusso di testo specificato in un CodeCompileUnit.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodSupports(GeneratorSupport)

Restituisce un valore che indica se supportare la generazione di codice specificato viene fornito.(Ereditato da CodeDomProvider.)

System_CAPS_pubmethodToString()

Restituisce un String contenente il nome del Component, se presente. Questo metodo non deve essere sottoposto a override.(Ereditato da Component.)

NomeDescrizione
System_CAPS_pubeventDisposed

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

This class provides methods that can be used to retrieve instances of the C# T:System.CodeDom.Compiler.ICodeGenerator and T:System.CodeDom.Compiler.ICodeCompiler implementations.

System_CAPS_noteNota

This class contains a link demand and an inheritance demand at the class level that applies to all members. A T:System.Security.SecurityException is thrown when either the immediate caller or the derived class does not have full-trust permission.

The following example uses either the C# or Visual Basic code provider to compile a source file. The example checks the input file extension and uses the corresponding T:Microsoft.CSharp.CSharpCodeProvider or T:Microsoft.VisualBasic.VBCodeProvider for compilation. The input file is compiled into an executable file, and any compilation errors are displayed to the console.

using System;
using System.IO;
using System.Globalization;
using System.CodeDom.Compiler;
using System.Text;
using Microsoft.CSharp;
using Microsoft.VisualBasic;

namespace CodeProviders
{
	class CompileSample
	{
        [STAThread]
        static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                //  First parameter is the source file name.
                if (File.Exists(args[0]))
                {
                    CompileExecutable(args[0]);
                }
                else 
                {
                    Console.WriteLine("Input source file not found - {0}",
                        args[0]);
                }
            }
            else 
            {
                Console.WriteLine("Input source file not specified on command line!");
            }
        }

        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;
        }
	}
}

SecurityAction.LinkDemand

for full trust for the immediate caller. This class cannot be used by partially trusted code.

SecurityAction.InheritanceDemand

for full trust for inheritors. This class cannot be inherited by partially trusted code.

.NET Framework
Disponibile da 1.1

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: