【问题标题】:ASP.NET VB.NET Add Indent to Programmatically created fileASP.NET VB.NET 向以编程方式创建的文件添加缩进
【发布时间】:2023-08-31 15:25:01
【问题描述】:

在谷歌搜索后,只找到了 XML 缩进的答案,“只需使用 Visual Studio 的自动缩进”“自己编写会很疯狂auto-indenter" 我决定来个好地方:*...

问题: 1.如何向以编程方式创建的文件添加“缩进”? - 我将通过 System.IO 类/streamwriter 生成文件,除非有人能告诉我更好的方法,否则我只想从我的 asp.net 页面、Windows 应用程序或可能的批处理文件生成文件(嗯,也许不是最后一个)...生成一个类文件,例如 Employee.vb OR EmployeeDAL.vb

原因: 我已经决定我有点厌倦为我编写的每个数据库表编写相同的 BOL 和 DAL 代码,而目前由于工作限制,我被 ASP.NET 困住了,否则我会转到像 Ruby on Rails 或一些 PHP 框架之类的东西,但这不是一个选项,所以请不要建议这个。

所以... 我知道如何获取我所有表格列的名称、它们的数据类型、它们的长度,...谷歌搜索我认为主要部分将“相当容易”。

但我真正想知道的是,如何在创建文件时添加缩进?

想多了: 或许,是我想多了,等我坐下来写的时候,我才意识到,我只需要在我的字符串中添加一些空格......

"    private _" & db_field_name & " as " variable_type(db_type)
  • 任何帮助表示赞赏...
  • 干杯。

附... 我们正在使用 .NET 2.0——我知道,我知道,我们应该使用 Ruby、PHP 或 .NET 4.0 的原因有很多(希望今年会出现——对我们的团队来说)——但我无能为力现在就做吧,我们使用 .NET。

【问题讨论】:

  • 会不会只是 sw.Write("\t"); - 真的有这么简单吗??
  • 是的,我知道,很抱歉,我的意思是,我们应该在今年得到它。
  • IMO,与 .NET 2.0 相比,PHP 会倒退(甚至 .NET 1.1,取决于 PHP 的版本)。 Ruby 会更偏向一步。 .NET 2.0 是如此强大,以至于 3.0 和 3.5 都建立在它之上。

标签: .net asp.net vb.net streamwriter


【解决方案1】:

您是否有理由不使用T4 templates 来执行此操作?

此外,代码生成创建的缩进文件也没有任何魔力。你有责任这样做。当然,如果您使用 T4 生成代码,您很可能不必担心这一点(T4 的性质意味着这个问题几乎总是没有实际意义)。

【讨论】:

  • T4 看起来不错,目前只在 Visual Studio 2005 上工作,而 T4 是 2008 年以上。但是我们今天开始在 Visual Studio 2010 上测试/移动我们的集成引擎,所以希望我们很快就能使用它。不过,我个人已经拥有 VS 2010,所以我想我会检查一下。我知道 * 是我要来的地方。 +1
  • 或者至少我会在家里试一试,但我只有快递版:(
  • @Duncan 我认为 T4 在 VS 2005 中也可用,尽管我可能错了。它可能在 Express 版本中不可用。 msdn.microsoft.com/en-us/library/bb126445%28v=VS.80%29.aspx
  • “T4 的本质意味着这个问题几乎总是没有实际意义”——我对此很满意。 :)
  • &@Dr Wily's Apprentice 你能帮忙解决这个问题吗:*.com/questions/5571444/…
【解决方案2】:

看起来the IndentedTextWriter class 支持缩进,您可能会觉得这很有用。

您可能想查看 System.CodeDom 命名空间的一般情况,因为它可能适用于您正在尝试做的事情。

【讨论】: