您始终可以使用coldfusion web服务,而无需使用.NET内置服务。这需要您手动解析响应,但是,它是XML,所以没有那么糟糕。
<cfcomponent>
<cffunction name="GetStruct" access="remote" returntype="struct" output="no">
<cfscript>
var struct = StructNew();
struct.foo = "bar";
struct.baz = 2;
struct.Stooges = StructNew();
struct.Stooges.Larry = 1;
struct.Stooges.Moe = "Hi Mom";
struct.Stooges.Curley = "Not Shemp";
</cfscript>
<cfreturn struct>
</cffunction>
</cfcomponent>
在.Net中设置您的请求,如下所示:
var request = WebRequest.Create("http://localhost/test.cfc?method=GetStruct");
var response = request.GetResponse();
String content;
using (var reader = new StreamReader(response.GetResponseStream()))
{
content = reader.ReadToEnd();
}
您返回的内容将是如下所示的wddx数据包:
<wddxPacket version="1.0">
<header />
<data>
<struct>
<var name="BAZ">
<string>2</string>
</var>
<var name="STOOGES">
<struct>
<var name="MOE">
<string>Hi Mom</string>
</var>
<var name="CURLEY">
<string>Not Shemp</string>
</var>
<var name="LARRY">
<string>1</string>
</var>
</struct>
</var>
<var name="FOO">
<string>bar</string>
</var>
</struct>
</data>
</wddxPacket>
当然,更好的解决方案可能是首先返回XML
另外,您还可以强制coldfusion在cffunction标记上使用returnformat=“JSON”将结构序列化为JSON。