近期在写WinForm调用WebService的相关程序,遇到一些“莫名其妙”的问题:
System.InvalidOperationException: 生成 XML 文档时出错。 ---> System.InvalidOperationException: 类型 System.String[] 不能在此上下文中使用。
System.InvalidOperationException: 生成 XML 文档时出错。 ---> System.InvalidOperationException: 类型 System.Int32[] 不能在此上下文中使用。
System.InvalidOperationException: 生成 XML 文档时出错。 ---> System.InvalidOperationException: 不应是类型 Aspx_new.tinvoke。使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型。
之前曾经测试过用WebService返回自定义的类,都能正常返回,难道系统自带的类型却不劫持?后来测试直接返回自定义类型竟然是正常的,再次调用返回dynamic类型的方法,又不报错了。:<
最后测试发现,返回dynamic类型时所有非简单值的还回都”可能“报错,如果返回值不是简单类型(基本类型:int,string),比如数组、对象数组等必须保证当前类中有一个方法返回值是这种类型。
public class CallServer : WebService
{
[WebMethod] 这个方法返回dynamic类型或object类型因为它是