dotnet core/corefx 中是不是有与 HtmlTextWriter 等效的类?
Posted
技术标签:
【中文标题】dotnet core/corefx 中是不是有与 HtmlTextWriter 等效的类?【英文标题】: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 的最佳方法是什么?”
【问题讨论】:
见github.com/dotnet/corefx/issues/24169 【参考方案1】:.NET Core 2.0
does 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 核心。我已经对此进行了测试。任何想要迁移的人都可以在花费更多精力之前轻松地进行测试。以上是关于dotnet core/corefx 中是不是有与 HtmlTextWriter 等效的类?的主要内容,如果未能解决你的问题,请参考以下文章
Spark Structured Streaming中是不是有与reduceByKeyAndWindow等价的东西?
react-native 中是不是有与 RCTJavaScriptDidLoadNotification 事件等效的 Android?