[英]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.