CSharpCodeProvider Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyediakan akses ke instans generator kode C# dan pengkompilasi kode.
public ref class CSharpCodeProvider : System::CodeDom::Compiler::CodeDomProvider
public class CSharpCodeProvider : System.CodeDom.Compiler.CodeDomProvider
type CSharpCodeProvider = class
inherit CodeDomProvider
Public Class CSharpCodeProvider
Inherits CodeDomProvider
- Warisan
Contoh
Contoh berikut menggunakan penyedia kode C# atau Visual Basic untuk mengkompilasi file sumber. Contohnya memeriksa ekstensi file input dan menggunakan yang sesuai CSharpCodeProvider atau VBCodeProvider untuk kompilasi. File input dikompilasi ke dalam file yang dapat dieksekusi, dan kesalahan kompilasi apa pun ditampilkan ke konsol.
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;
}
}
}
Imports System.IO
Imports System.Globalization
Imports System.CodeDom.Compiler
Imports System.Text
Imports Microsoft.CSharp
Namespace CodeProviders
Class CompileSample
<STAThread()> _
Public Shared Sub Main(args() As String)
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))
End If
Else
Console.WriteLine("Input source file not specified on command line!")
End If
End Sub
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
End Class
End Namespace
Keterangan
Kelas ini menyediakan metode yang dapat digunakan untuk mengambil instans C# ICodeGenerator dan ICodeCompiler implementasi.
Catatan
Kelas ini berisi permintaan tautan dan permintaan warisan di tingkat kelas yang berlaku untuk semua anggota. SecurityException dilemparkan ketika pemanggil langsung atau kelas turunan tidak memiliki izin kepercayaan penuh.
Konstruktor
CSharpCodeProvider() |
Menginisialisasi instans baru kelas CSharpCodeProvider. |
CSharpCodeProvider(IDictionary<String,String>) |
Menginisialisasi instans CSharpCodeProvider baru kelas dengan menggunakan opsi penyedia yang ditentukan. |
Properti
CanRaiseEvents |
Mendapatkan nilai yang menunjukkan apakah komponen dapat menaikkan peristiwa. (Diperoleh dari Component) |
Container |
IContainer Mendapatkan yang berisi Component. (Diperoleh dari Component) |
DesignMode |
Mendapatkan nilai yang menunjukkan apakah Component saat ini dalam mode desain. (Diperoleh dari Component) |
Events |
Mendapatkan daftar penanganan aktivitas yang dilampirkan ke ini Component. (Diperoleh dari Component) |
FileExtension |
Mendapatkan ekstensi nama file untuk digunakan saat membuat file kode sumber. |
LanguageOptions |
Mendapatkan pengidentifikasi fitur bahasa. (Diperoleh dari CodeDomProvider) |
Site |
Mendapatkan atau mengatur ISite dari Component. (Diperoleh dari Component) |
Metode
CompileAssemblyFromDom(CompilerParameters, CodeCompileUnit[]) |
Mengkompilasi rakitan berdasarkan System.CodeDom pohon yang terkandung dalam array CodeCompileUnit objek yang ditentukan, menggunakan pengaturan pengkompilasi yang ditentukan. (Diperoleh dari CodeDomProvider) |
CompileAssemblyFromFile(CompilerParameters, String[]) |
Mengkompilasi rakitan dari kode sumber yang terkandung dalam file yang ditentukan, menggunakan pengaturan pengkompilasi yang ditentukan. (Diperoleh dari CodeDomProvider) |
CompileAssemblyFromSource(CompilerParameters, String[]) |
Mengkompilasi rakitan dari array string yang ditentukan yang berisi kode sumber, menggunakan pengaturan pengkompilasi yang ditentukan. (Diperoleh dari CodeDomProvider) |
CreateCompiler() |
Kedaluwarsa.
Kedaluwarsa.
Mendapatkan instans pengkompilasi kode C#. |
CreateEscapedIdentifier(String) |
Membuat pengidentifikasi escape untuk nilai yang ditentukan. (Diperoleh dari CodeDomProvider) |
CreateGenerator() |
Kedaluwarsa.
Kedaluwarsa.
Mendapatkan instans generator kode C#. |
CreateGenerator(String) |
Saat ditimpa di kelas turunan, buat generator kode baru menggunakan nama file yang ditentukan untuk output. (Diperoleh dari CodeDomProvider) |
CreateGenerator(TextWriter) |
Saat ditimpa di kelas turunan, buat generator kode baru menggunakan yang ditentukan TextWriter untuk output. (Diperoleh dari CodeDomProvider) |
CreateObjRef(Type) |
Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh. (Diperoleh dari MarshalByRefObject) |
CreateParser() |
Kedaluwarsa.
Kedaluwarsa.
Saat ditimpa di kelas turunan, membuat pengurai kode baru. (Diperoleh dari CodeDomProvider) |
CreateValidIdentifier(String) |
Membuat pengidentifikasi yang valid untuk nilai yang ditentukan. (Diperoleh dari CodeDomProvider) |
Dispose() |
Merilis semua sumber daya yang Componentdigunakan oleh . (Diperoleh dari Component) |
Dispose(Boolean) |
Merilis sumber daya tidak terkelola yang digunakan oleh Component dan secara opsional merilis sumber daya terkelola. (Diperoleh dari Component) |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GenerateCodeFromCompileUnit(CodeCompileUnit, TextWriter, CodeGeneratorOptions) |
Menghasilkan kode untuk unit kompilasi Code Document Object Model (CodeDOM) yang ditentukan dan mengirimkannya ke penulis teks yang ditentukan, menggunakan opsi yang ditentukan. (Diperoleh dari CodeDomProvider) |
GenerateCodeFromExpression(CodeExpression, TextWriter, CodeGeneratorOptions) |
Menghasilkan kode untuk ekspresi Code Document Object Model (CodeDOM) yang ditentukan dan mengirimkannya ke penulis teks yang ditentukan, menggunakan opsi yang ditentukan. (Diperoleh dari CodeDomProvider) |
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions) |
Menghasilkan kode untuk anggota kelas yang ditentukan menggunakan opsi penulis teks dan generator kode yang ditentukan. |
GenerateCodeFromMember(CodeTypeMember, TextWriter, CodeGeneratorOptions) |
Menghasilkan kode untuk deklarasi anggota Code Document Object Model (CodeDOM) yang ditentukan dan mengirimkannya ke penulis teks yang ditentukan, menggunakan opsi yang ditentukan. (Diperoleh dari CodeDomProvider) |
GenerateCodeFromNamespace(CodeNamespace, TextWriter, CodeGeneratorOptions) |
Menghasilkan kode untuk namespace Layanan Code Document Object Model (CodeDOM) yang ditentukan dan mengirimkannya ke penulis teks yang ditentukan, menggunakan opsi yang ditentukan. (Diperoleh dari CodeDomProvider) |
GenerateCodeFromStatement(CodeStatement, TextWriter, CodeGeneratorOptions) |
Menghasilkan kode untuk pernyataan Code Document Object Model (CodeDOM) yang ditentukan dan mengirimkannya ke penulis teks yang ditentukan, menggunakan opsi yang ditentukan. (Diperoleh dari CodeDomProvider) |
GenerateCodeFromType(CodeTypeDeclaration, TextWriter, CodeGeneratorOptions) |
Menghasilkan kode untuk deklarasi jenis Code Document Object Model (CodeDOM) yang ditentukan dan mengirimkannya ke penulis teks yang ditentukan, menggunakan opsi yang ditentukan. (Diperoleh dari CodeDomProvider) |
GetConverter(Type) |
TypeConverter Mendapatkan untuk jenis objek yang ditentukan. |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetLifetimeService() |
Kedaluwarsa.
Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
GetService(Type) |
Mengembalikan objek yang mewakili layanan yang disediakan oleh Component atau oleh Container. (Diperoleh dari Component) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
GetTypeOutput(CodeTypeReference) |
Mendapatkan jenis yang ditunjukkan oleh yang ditentukan CodeTypeReference. (Diperoleh dari CodeDomProvider) |
InitializeLifetimeService() |
Kedaluwarsa.
Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
IsValidIdentifier(String) |
Mengembalikan nilai yang menunjukkan apakah nilai yang ditentukan adalah pengidentifikasi yang valid untuk bahasa saat ini. (Diperoleh dari CodeDomProvider) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
MemberwiseClone(Boolean) |
Membuat salinan dangkal objek saat ini MarshalByRefObject . (Diperoleh dari MarshalByRefObject) |
Parse(TextReader) |
Mengkompilasi kode yang dibaca dari aliran teks yang ditentukan ke dalam CodeCompileUnit. (Diperoleh dari CodeDomProvider) |
Supports(GeneratorSupport) |
Mengembalikan nilai yang menunjukkan apakah dukungan pembuatan kode yang ditentukan disediakan. (Diperoleh dari CodeDomProvider) |
ToString() |
Mengembalikan yang String berisi nama Component, jika ada. Metode ini tidak boleh ditimpa. (Diperoleh dari Component) |
Acara
Disposed |
Terjadi ketika komponen dibuang oleh panggilan ke Dispose() metode . (Diperoleh dari Component) |