.net 如何从ServiceStack API返回XmlDocument作为响应
我们有一些ServiceStack API,它们是从外部工具调用的。该工具需要“XmlDocument”类型的输入,并且没有在该工具中编写将字符串转换为XmlDocument的代码的规定 问题是,早些时候,我们有SOAP服务返回XmlDocument,并且该工具运行良好。然而,最近我们将所有这些服务都转换为ServiceStack,从那时起,我们无法获得正确的XmlDocument响应。它总是返回空节点。 我认为这不是直截了当的,两者之间缺少一些东西 下面是我的回应对象.net 如何从ServiceStack API返回XmlDocument作为响应,.net,xml,soap,servicestack,xmldocument,.net,Xml,Soap,servicestack,Xmldocument,我们有一些ServiceStack API,它们是从外部工具调用的。该工具需要“XmlDocument”类型的输入,并且没有在该工具中编写将字符串转换为XmlDocument的代码的规定 问题是,早些时候,我们有SOAP服务返回XmlDocument,并且该工具运行良好。然而,最近我们将所有这些服务都转换为ServiceStack,从那时起,我们无法获得正确的XmlDocument响应。它总是返回空节点。 我认为这不是直截了当的,两者之间缺少一些东西 下面是我的回应对象 public class
public class RequisitionImportResponse : ResultResponse
{
public XmlDocument ResponseXML { get; set; }
}
目前,我在ResponseXML中得到了空节点,我希望在这里接收正确的XmlDocument,当服务在SOAP中时,它用于返回该XmlDocument
有人能帮忙吗
谢谢您可以在服务中返回
字符串
,例如:
public class RequisitionImport : IReturn<string> { ... }
public class XmlServices : Service
{
[AddHeader(ContentType=MimeTypes.Xml)]
public object Any(RequisitionImport request)
{
XmlDocument xmlDoc = ...;
return xmlDoc.OuterXml;
}
}
如果将配置为检查XmlDocument
并将其写入响应,例如:
GlobalResponseFiltersAsync.Add(async (req, res, dto) => {
if (dto is XmlDocument doc) {
res.ContentType = MimeTypes.Xml;
await res.WriteAsync(doc.OuterXml);
res.EndRequest();
}
});
,谢谢你的回复。是的,我们目前只返回字符串。但为此,我们需要添加一些额外的步骤,以便在我们使用的第三方工具中将字符串转换为XmlDocument。我在想是否可以返回XmlDocument对象本身。感谢@mythz提供详细的答案
GlobalResponseFiltersAsync.Add(async (req, res, dto) => {
if (dto is XmlDocument doc) {
res.ContentType = MimeTypes.Xml;
await res.WriteAsync(doc.OuterXml);
res.EndRequest();
}
});