【问题标题】:Is there an equivalent class to HtmlTextWriter in dotnet core/corefx?dotnet core/corefx 中是否有与 HtmlTextWriter 等效的类?
【发布时间】:2016-03-15 03:08:30
【问题描述】:

许多创建 html 的库都依赖于 HtmlTextWriter。新的 corefx 中是否有这个类的等价物?

以下是一些依赖 HtmlTextWriter 的项目: https://github.com/darthfubumvc/htmltags https://fluenttags.codeplex.com/

另一个问题可能是:“使用 dotnet core / corefx 生成 html 的最佳方法是什么?”

【问题讨论】:

标签: c# html .net .net-core


【解决方案1】:

.NET Core 2.0does not supportHtmlTextWriter 类。

您可以通过将使用HtmlTextWriter 的逻辑移动到类库.NET Standard 2.0 来解决此问题。然后,您将能够从 .NET Core.NET Framework 项目中引用此类库。

【讨论】:

  • 你采取了类库的方式,我的理解是虽然.NET Core可以编译,但是在没有安装.NET Framework的Linux上你是无法运行应用的。
  • 根据docs.microsoft.com/en-us/dotnet/api/… HtmlTextWriter 不受任何.NET CORE Framework 支持
【解决方案2】:

如果您不关心格式和缩进或制表符,您可以使用普通的TextWriter 和扩展方法。

使用扩展方法添加回WriteBeginTag 和其他方法将为您提供源代码级别的兼容性,但由于您仍在使用TextWriter 而没有额外的状态,您将无法正确实现缩进,除非您存储你的缩进状态在一个单独的对象中,并用 TextWriter 携带它(我确实考虑过使用 thread-local-storage 使其隐含,但由于 ASP.NET Core 大量使用 async 我不认为它是为此目的使用线程本地存储是明智的)。

【讨论】:

    【解决方案3】:

    我已经在 .NET core 3.1 和 .NET 5 上测试过一个超级简单的修复方法。只需在您的 .NET core 项目中安装 NuGet 包 HtmlTextWriter 即可。

    【讨论】:

    • 据此:docs.microsoft.com/en-us/dotnet/api/… .NET CORE Framekwork 不支持 HtmlTextWriter
    • NuGet 包适用于 .NET 标准,但也适用于 .NET 核心。我已经对此进行了测试。任何想要迁移的人都可以在花费更多精力之前轻松地进行测试。
    猜你喜欢
    • 2019-11-06
    • 2021-12-18
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2011-02-28
    • 2019-12-02
    • 2018-11-10
    相关资源
    最近更新 更多