簡體   English   中英

從CompactFramework Client消耗WebService

[英]Consuming WebService From CompactFramework Client

我試圖調用這樣的webservice方法:

myService.Register("mystring");

webmethod的定義只是:

[WebMethod]
public void Register(string s)
{
}

但是我收到以下System.InvalidOperationException:

“不希望使用System.String類型。請使用XmlInclude或SoapInclude屬性來指定靜態未知的類型。”


   at System.Xml.Serialization.AccessorCollection.findAccessor(Type t)
   at System.Xml.Serialization.XmlSerializationWriter.EnqueueMember(MemberValueCollection members, LogicalMemberValue member, SerializationQueue attributes, SerializationQueue elements, Object fetcherTarget, String parentElementNamespace)
   at System.Xml.Serialization.XmlSerializationWriter.EnqueueMembers(MemberValueCollection members, SerializationQueue attributes, SerializationQueue elements, Object fetcherTarget, String parentElementNamespace)
   at System.Xml.Serialization.XmlSerializationWriter.SerializeComplexAsElement(LogicalType serializeAs, Accessor accessor, Object value, SerializationQueue delayedWork, Boolean recursiveCall, Boolean requiresTypeAttr, XmlSerializerNamespaces serializerNs)
   at System.Web.Services.Protocols.SoapMessageFormatter.SerializeComplexAsElement(LogicalType serializeAs, Accessor accessor, Object value, SerializationQueue delayedWork, Boolean recursiveCall, Boolean requiresTypeAttr, XmlSerializerNamespaces ns)
   at System.Xml.Serialization.XmlSerializationWriter.SerializeAsElement(Accessor accessor, Object value, Object fetcherTarget, SerializationQueue delayedWork, Boolean recursiveCall, Boolean schemaReqTypeAttr, XmlSerializerNamespaces serializerNs)
   at System.Xml.Serialization.XmlSerializationWriter.serializeMembers(SerializationQueue queue, SerializationQueue delayedWork, Boolean recursiveCall, Boolean schemaReqTypeAttr, XmlSerializerNamespaces serializeNs)
   at System.Web.Services.Protocols.SoapMessageFormatter.execute(String targetNamespace)
   at System.Web.Services.Protocols.SoapMessageSerializer.Serialize(XmlWriter writer, SoapHttpClientProtocol client, Object[] parameters, LogicalSoapMethod soapMethod, Boolean soap12)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke(String methodName, Object[] parameters, WebClientAsyncResult asyncResult)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)

Google並未提供任何有用的工具,而且我處於死胡同,因此歡迎提出建議。 到目前為止,我唯一的想法就是這有點不匹配,因為CF對Webservice項目使用了不同版本的System.dll。

這是由於我使用了Web參考的子類,並且還使用了一個接口,即:

public class MyWebServiceReference : RawWebServiceReference, IService {}

該接口位於RawWebServiceReference和MyWebServiceReference的單獨項目中,並且某些方面引起了錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM