0
通行證和得到的對象,我們有這樣一個Web服務:與ASMX WebService的
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public object[] DoSmt(object[] inParams)
{
List<object> rsl = new List<object>();
rsl.Add(DateTime.Now);
rsl.Add(new CallResult());
return rsl.ToArray();
}
CallResult
類是Web服務定義。我們把從WinForms的這個方法(在此之前,我們添加一個Web引用此Web服務):
Service svc = new Service();
object[] arrRsl = svc.DoSmt(new object[] { "hi there", "hello" });
我們得到一個異常說
應用程序不知道如何反序列化CallResult
但是,如果我們把一個有趣的功能,像這樣成Web服務:
[WebMethod(EnableSession = true)]
public void Fun(CallResult abc)
{
// Do nothing
}
然後一切都很好。這是因爲CallResult
在添加有趣功能之前沒有出現在WSDL文件中,因爲它沒有出現在任何WebMethod
中。
現在的問題是:如何通知C#在WSDL文件中生成CallResult
,即使它沒有明確用於任何WebMethod
。我們使用VS2005。
謝謝。
.NET 2.0中只需添加[XmlInclude(typeof運算(CallResult))] – QuangND