【发布时间】:2011-12-02 02:26:59
【问题描述】:
所以我想将自定义对象发送到 asp.net 4.0 Webservice。
我一直在发送一堆单独的参数,但我想开始重用一些代码,所以我想做类似的事情
[WebMethod(Description = "Testing Sending Object In")]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public bool COT(CodeWithMessage CWM)
{
...
CodeWithMessage 的类在哪里
namespace UserSite
{
namespace General
{
public class CodeWithMessage
{
public int iCode { get; set; }
public string sMessage { get; set; }
public CodeWithMessage()
{
}
}
}
}
webservice 将输入定义为
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<COT xmlns="http://localhost">
<CWM>
<iCode>int</iCode>
<sMessage>string</sMessage>
</CWM>
</COT>
</soap:Body>
</soap:Envelope>
我尝试将以下 json 传递给 web 服务
var postdata = { "iCode": -5, "sMessage": "BlogName " }
我收到内部服务器错误 [500]
{"Message":"无效的 JSON 原语:iCode。"
我是否需要以某种方式将其包装起来以表明它是该对象的一部分?我试过了
{"__type":"UserSite.General.CodeWithMessage","iCode":-5,"sMessage":"Blog Name Already Exists"}
CodeWithMessage 从另一个发送它而不是接收它的 web 服务返回。
【问题讨论】:
-
有什么原因你不使用 WCF 而不是传统的 ASMX 技术?
-
人力资源管理。我猜是因为我不知道 WCF 是如何工作的,或者它甚至取代了 ASXM。我想我得开始研究这个了。谢谢
-
认真的吗? WCF 于 2006 年随 .NET 3.0 一起发布。
-
是的。我在软件开发领域工作了 5 年,以帮助我的家人开展业务,最近我又重新投入了工作。2006 年正是我离开这个领域的时候。
-
我强烈建议您研究 WCF。这是一个很好的参考:msdn.microsoft.com/en-us/netframework/dd939784.aspx
标签: c# asp.net json web-services