【问题标题】:Set response format html Message in WCF C#在 WCF C# 中设置响应格式 html 消息
【发布时间】:2013-08-06 09:27:34
【问题描述】:

在 C# 中有一个 WCF 服务:

[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any, InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single, IncludeExceptionDetailInFaults = true)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
class SubscriptionService : ISubscriptionService
{        
    public Message Help(Message m)
    {
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/html; charset=utf-8";
        return new WebHttpHelpPageMessage();
    }
}

[ServiceContract]
interface ISubscriptionService
{        
    [OperationContract]
    [WebInvoke(UriTemplate = "*", Method = "*")]
    Message Help(Message m);
}

来自继承类的消息:

public class WebHttpHelpPageMessage : Message
{
    ...

    protected override void OnWriteBodyContents(System.Xml.XmlDictionaryWriter writer)
    {
        writer.WriteStartElement("html");
        writer.WriteRaw("<head></head><body><p>Hi</p></body>");
        writer.WriteEndElement();
    }
}

浏览器中的结果——XML,怎么变成HTML?

【问题讨论】:

  • 它对您的要求不是很清楚,但您是说,您的浏览器显示 xml,而您想显示 html?
  • 是的,那个 content-type="text/html"

标签: c# wcf format message


【解决方案1】:

既然您已经获得了 xml,我可以建议您创建一个 xml 对象。然后,根据需要创建 xslt (http://msdn.microsoft.com/en-us/library/ms256069.aspx)。

然后您可以使用 xslt 将该 xml 转换为 HTML。这样做很简单,您可以控制要如何显示它。

(http://msdn.microsoft.com/en-us/library/system.xml.xsl.xslcompiledtransform.aspx)

如果您遵循这种方法,这就足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多