【发布时间】:2014-12-31 12:58:22
【问题描述】:
我正在尝试将一组自定义对象发送到 Web 方法 (.asmx),但它引发了序列化错误。从 Web 项目调用 Web 方法时工作正常,但 Xamarin 正在苦苦挣扎,当我单击“显示详细信息”时,xamarin 会抛出自己的错误,即“路径中的非法字符”,这对我没有帮助调试工作。
据我所知,自定义对象的属性中没有“非法字符”;它们都是基本类型,例如 int、string 等。
有没有人遇到过这个问题,或者知道我该如何调试?
完整的错误信息:
System.InvalidOperationException has been thrown
There was an error generating the XML document.
出现在这段代码 sn-p 处(来自网络参考生成的 Reference.cs):
public void InsertClockEntries(ClockentryPublicInfo[] entries) {
this.Invoke("InsertClockEntries", new object[] {
entries});
}
编辑:这是来自 Android 日志的堆栈跟踪:
E/mono-rt ( 6638): [ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: '10' is not a valid value for MobileTimeClock.secure.timedock.com.v2.ClockingAction.
E/mono-rt ( 6638): at System.Xml.Serialization.EnumMap.GetXmlName (System.String typeName, System.Object enumValue) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.GetEnumXmlValue (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.GetStringValue (System.Xml.Serialization.XmlTypeMapping typeMap, System.Xml.Serialization.TypeData type, System.Object value) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WritePrimitiveValueLiteral (System.Object memberValue, System.String name, System.String ns, System.Xml.Serialization.XmlTypeMapping mappedType, System.Xml.Serialization.TypeData typeData, Boolean wrapped, Boolean isNullable) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteMemberElement (System.Xml.Serialization.XmlTypeMapElementInfo elem, System.Object memberValue) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteElementMembers (System.Xml.Serialization.ClassMap map, System.Object ob, Boolean isValueList) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteObjectElementElements (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteObjectElement (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob, System.String element, System.String namesp) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteObject (System.Xml.Serialization.XmlTypeMapping typeMap, System.Object ob, System.String element, System.String namesp, Boolean isNullable, Boolean needType, Boolean writeWrappingElem) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteMemberElement (System.Xml.Serialization.XmlTypeMapElementInfo elem, System.Object memberValue) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteListContent (System.Object container, System.Xml.Serialization.TypeData listType, System.Xml.Serialization.ListMap map, System.Object ob, System.Text.StringBuilder targetString) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteMemberElement (System.Xml.Serialization.XmlTypeMapElementInfo elem, System.Object memberValue) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteElementMembers (System.Xml.Serialization.ClassMap map, System.Object ob, Boolean isValueList) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteMembers (System.Xml.Serialization.ClassMap map, System.Object ob, Boolean isValueList) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteMessage (System.Xml.Serialization.XmlMembersMapping membersMap, System.Object[] parameters) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializationWriterInterpreter.WriteRoot (System.Object ob) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializer.Serialize (System.Object o, System.Xml.Serialization.XmlSerializationWriter writer) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializer.Serialize (System.Xml.XmlWriter xmlWriter, System.Object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces) [0x00000] in <filename unknown>:0
E/mono-rt ( 6638): --- End of inner exception stack trace ---
E/mono-rt ( 6638): at System.Xml.Serialization.XmlSerializer.Se
【问题讨论】:
-
MobileTimeClock.secure.timedock.com.v2.ClockingAction 的类型是什么?
-
我不敢相信我错过了。嗯,这是一个更好的起点谢谢! (对不起,我不必这么匆忙发布)。它是一个枚举类型。
标签: xml web-services exception xamarin asmx