我在java中使用axis2和tomcat编写了一个Web服务,还在c#中创建了一个客户端,我在Web服务器上成功调用了方法。 但我正在努力使用一种方法,该方法必须能够将任何Object作为参数。浮点数,字符串,随机文件或图片。
我尝试在c#中创建一个可序列化的对象,我可以创建并将我的String放入其中,然后将其作为参数发送到我的Web服务功能。 但我得到:抛出异常:' System.InvalidOperationException'在System.Xml.dll
中我该如何解决这个问题?我想我必须先将它序列化,但我不知道我是怎么做的,然后将序列化对象作为参数发送给函数。是否必须在Web服务上定义此对象?
答案 0 :(得分:0)
如果要将“任何”C#对象发送到Java,您将遇到问题。 C#对象不容易简化为Java对象。它们是不同的语言,每个语言在对象模型中都有一些独特的功能。相反,找到一种语言中立格式(如Json),可以捕获您需要的任何类型的数据。可以在JSon中轻松捕获常见的数据格式,如Int,String,Boolean等。使用JSON也可以创建更复杂的对象。
所以,我推荐以下内容。对于要通过线路发送的每个C#对象,让它实现一个toJson方法,该方法将其状态转储并转储为JSON,传输JSON并作为Java对象进行deserilize。这应该涵盖大多数情况。