在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

09-07 09:35