在RC1中,我有以下可行的小方法。
public string ConvertTagToSring(TagBuilder Tag)
{
var writer = new StringWriter();
Tag.WriteTo(writer, new HtmlEncoder());
return writer.ToString();
}
如方法所示,它使用stringWriter()将Tagbuilder标签转换为字符串。
我在“新的HtmlEncoder()”上收到错误,错误是:
无法创建抽象类或接口“ HtmlEncoder”的实例
我在Asp.Net/公告的重大更改部分的HtmlEncoder上找到了this,但是我无法弄清楚如何对其进行更改。
我该如何重构:
Tag.WriteTo(writer, new HtmlEncoder());
这样我就可以将标签转换为字符串了?
最佳答案
HtmlEncoder
现在是抽象类,无法初始化(see HttpEncoder.cs上的dotnet\corefx GitHub repository)。
它具有内部的默认实现(DefaultHtmlEncoder
)。但是HtmlEncoder
公开了静态属性Default
,该静态属性引用了它的默认实现see HttpEncoder.cs。
因此,您不必呼叫new HtmlEncoder()
,而只需呼叫HtmlEncoder.Default
。我猜这是一种优化尝试,以避免每个请求多次初始化HtmlEncoder
。