IndentedTextWriter (Clase)
Ensamblado: System (en system.dll)
IndentedTextWriter extiende un TextWriter mediante métodos que insertan una cadena de tabulación y hacen un seguimiento del nivel de sangría. El texto con formato con múltiples niveles de sangría es útil para el código generado, de modo que esta clase se utilice para las implementaciones del generador de código CodeDOM.
La cadena de tabulación es la cadena en la que consiste cada sangría. Normalmente, la cadena de tabulación contiene espacios en blanco.
Nota |
|---|
| Esta clase contiene una petición de vínculo y una petición de herencia en el nivel de clase que se aplica a todos los miembros. Se produce una excepción SecurityException si el llamador inmediato o la clase derivada no dispone de permisos de plena confianza. Para obtener más información sobre las peticiones de seguridad, vea Peticiones de vínculos y Peticiones de herencia. |
En el ejemplo de código siguiente se muestra la forma de utilizar IndentedTextWriter para escribir texto con diferentes niveles de sangría.
using System; using System.CodeDom; using System.CodeDom.Compiler; using System.ComponentModel; using System.IO; using System.Windows.Forms; namespace IndentedTextWriterExample { public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.TextBox textBox1; private string CreateMultilevelIndentString() { // Creates a TextWriter to use as the base output writer. System.IO.StringWriter baseTextWriter = new System.IO.StringWriter(); // Create an IndentedTextWriter and set the tab string to use // as the indentation string for each indentation level. System.CodeDom.Compiler.IndentedTextWriter indentWriter = new IndentedTextWriter(baseTextWriter, " "); // Sets the indentation level. indentWriter.Indent = 0; // Output test strings at stepped indentations through a recursive loop method. WriteLevel(indentWriter, 0, 5); // Return the resulting string from the base StringWriter. return baseTextWriter.ToString(); } private void WriteLevel(IndentedTextWriter indentWriter, int level, int totalLevels) { // Output a test string with a new-line character at the end. indentWriter.WriteLine("This is a test phrase. Current indentation level: "+level.ToString()); // If not yet at the highest recursion level, call this output method for the next level of indentation. if( level < totalLevels ) { // Increase the indentation count for the next level of indented output. indentWriter.Indent++; // Call the WriteLevel method to write test output for the next level of indentation. WriteLevel(indentWriter, level+1, totalLevels); // Restores the indentation count for this level after the recursive branch method has returned. indentWriter.Indent--; } else // Outputs a string using the WriteLineNoTabs method. indentWriter.WriteLineNoTabs("This is a test phrase written with the IndentTextWriter.WriteLineNoTabs method."); // Outputs a test string with a new-line character at the end. indentWriter.WriteLine("This is a test phrase. Current indentation level: "+level.ToString()); } private void button1_Click(object sender, System.EventArgs e) { textBox1.Text = CreateMultilevelIndentString(); } public Form1() { System.Windows.Forms.Button button1 = new System.Windows.Forms.Button(); this.textBox1 = new System.Windows.Forms.TextBox(); this.SuspendLayout(); this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((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, 40); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(391, 242); this.textBox1.TabIndex = 0; this.textBox1.Text = ""; button1.Location = new System.Drawing.Point(11, 8); button1.Name = "button1"; button1.Size = new System.Drawing.Size(229, 23); button1.TabIndex = 1; button1.Text = "Generate string using IndentedTextWriter"; button1.Click += new System.EventHandler(this.button1_Click); this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(407, 287); this.Controls.Add(button1); this.Controls.Add(this.textBox1); this.Name = "Form1"; this.Text = "IndentedTextWriter example"; this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run(new Form1()); } } }
package IndentedTextWriterExample;
import System.*;
import System.CodeDom.*;
import System.CodeDom.Compiler.*;
import System.ComponentModel.*;
import System.IO.*;
import System.Windows.Forms.*;
public class Form1 extends System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox1;
private String CreateMultilevelIndentString()
{
// Creates a TextWriter to use as the base output writer.
System.IO.StringWriter baseTextWriter = new System.IO.StringWriter();
// Create an IndentedTextWriter and set the tab string to use
// as the indentation string for each indentation level.
System.CodeDom.Compiler.IndentedTextWriter indentWriter
= new IndentedTextWriter(baseTextWriter, " ");
// Sets the indentation level.
indentWriter.set_Indent(0);
// Output test strings at stepped indentations through a
//recursive loop method.
WriteLevel(indentWriter, 0, 5);
// Return the resulting string from the base StringWriter.
return baseTextWriter.ToString();
} //CreateMultilevelIndentString
private void WriteLevel(IndentedTextWriter indentWriter, int level,
int totalLevels)
{
// Output a test string with a new-line character at the end.
indentWriter.WriteLine("This is a test phrase."
+" Current indentation level: "
+ System.Convert.ToString(level));
// If not yet at the highest recursion level, call this output method
// for the next level of indentation.
if (level < totalLevels) {
// Increase the indentation count for the next level of
// indented output.
indentWriter.set_Indent(indentWriter.get_Indent() + 1);
// Call the WriteLevel method to write test output for the
// next level of indentation.
WriteLevel(indentWriter, level + 1, totalLevels);
// Restores the indentation count for this level after the
// recursive branch method has returned.
indentWriter.set_Indent(indentWriter.get_Indent() - 1);
}
// Outputs a string using the WriteLineNoTabs method.
else {
indentWriter.WriteLineNoTabs("This is a test phrase written with"
+" the IndentTextWriter.WriteLineNoTabs method.");
}
// Outputs a test string with a new-line character at the end.
indentWriter.WriteLine("This is a test phrase."
+" Current indentation level: "
+ System.Convert.ToString(level));
} //WriteLevel
private void button1_Click(Object sender, System.EventArgs e)
{
textBox1.set_Text(CreateMultilevelIndentString());
} //button1_Click
public Form1()
{
System.Windows.Forms.Button button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
this.textBox1.set_Anchor(((System.Windows.Forms.AnchorStyles)(
System.Windows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Bottom
| System.Windows.Forms.AnchorStyles.Left
| System.Windows.Forms.AnchorStyles.Right)));
this.textBox1.set_Location(new System.Drawing.Point(8, 40));
this.textBox1.set_Multiline(true);
this.textBox1.set_Name("textBox1");
this.textBox1.set_Size(new System.Drawing.Size(391, 242));
this.textBox1.set_TabIndex(0);
this.textBox1.set_Text("");
button1.set_Location(new System.Drawing.Point(11, 8));
button1.set_Name("button1");
button1.set_Size(new System.Drawing.Size(229, 23));
button1.set_TabIndex(1);
button1.set_Text("Generate string using IndentedTextWriter");
button1.add_Click(new System.EventHandler(this.button1_Click));
this.set_AutoScaleBaseSize(new System.Drawing.Size(5, 13));
this.set_ClientSize(new System.Drawing.Size(407, 287));
this.get_Controls().Add(button1);
this.get_Controls().Add(this.textBox1);
this.set_Name("Form1");
this.set_Text("IndentedTextWriter example");
this.ResumeLayout(false);
} //Form1
/** @attribute STAThread()
*/
public static void main(String[] args)
{
Application.Run(new Form1());
} //main
} //Form1
- SecurityPermission para llamar a los miembros de IndentedTextWriter. Valor de la petición: LinkDemand; Conjuntos de permisos con nombre: FullTrust.
- SecurityPermission para derivar de la clase IndentedTextWriter. Valor de la petición: InheritanceDemand; Conjuntos de permisos con nombre: FullTrust.
System.MarshalByRefObject
System.IO.TextWriter
System.CodeDom.Compiler.IndentedTextWriter
Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition
.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.
Nota