【发布时间】:2009-04-23 20:22:07
【问题描述】:
我在数据库中有一个 XML 文档,它是某个类 Foo 的实例的 XML 序列化表示:
<?xml version="1.0" encoding="utf-16"?>
<Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
<StringProp>hello</StringProp>
<IntProp>5</IntProp>
</Foo>
假设现在我想编写一个返回 Foo 实例的 ASP.NET Web 服务方法,如下所示:
[WebMethod]
public Foo GimmeFoo()
{
}
问题:我想返回序列化的 Foo,但是没有先在 GimmeFoo() 方法中反序列化它(现实生活中的 Foo 相当大,反序列化它会感觉很愚蠢DB 然后很快就会被 SOAP 精灵自动重新序列化)。
是否有任何属性可以让我在 Web 服务(或我可以在其主体中编写的一些代码)上添加任何属性,让我无需先反序列化就可以发送 Foo 的实例?
【问题讨论】:
-
Guido - 如果你切换到 WCF,你可以(如果你真的想)使用可能会实现这一点的无类型“消息”类型参数 - 你可以手动编写你的消息体(作为 XML)。不过,我认为 ASP.NET Web 服务不会提供这种功能。
标签: asp.net xml web-services serialization soap