C# web服务返回类型异常

C# web服务返回类型异常,c#,asp.net,web-services,serialization,C#,Asp.net,Web Services,Serialization,我有一个web服务,它的方法返回一个名为WSResult的类。WSResult有2个属性。属性的一个类型是int,另一个类型是object。我想用第二个属性返回一些不同的类型。 你可以看到我的钱包 [Serializable] public class WSResult { public int M_Status { get; set; } public object M_ResultObject { get; set; } } 但是,当我想用M_ResultObject返回

我有一个web服务,它的方法返回一个名为WSResult的类。WSResult有2个属性。属性的一个类型是int,另一个类型是object。我想用第二个属性返回一些不同的类型。 你可以看到我的钱包

[Serializable]
public class WSResult
{

    public int M_Status { get; set; }
    public object M_ResultObject { get; set; }
}
但是,当我想用M_ResultObject返回DataSet或另一个可序列化对象时,我有一个错误。错误是:

System.Web.Services.Protocols.SoapException: Server was unable to process request.     
---> System.InvalidOperationException: 
        There was an error generating the XML document. 
---> System.InvalidOperationException: 
        The type System.Xml.Linq.XDocument was not expected. 
        Use the XmlInclude or SoapInclude attribute to specify types that are not 
        known statically
如何传递从其他web服务检索的对象或从M_ResultObject属性中的可序列化类生成的对象


KR

您是否尝试过使用xmlclude/SoapInclude将M_ResultObject属性标记为错误消息提示

[XmlInclude(typeof(...))]
public object M_ResultObject { get; set; }

您必须告诉相关序列化程序M_ResultObject的可能类型。如果可以返回多个不同的对象,则可以指定多个属性。

我的manager开发者解决了此问题,我想与您分享。我们应该把

[XmlInclude(typeof(...))]
打开.asmx web服务并从客户端更新web服务引用


KR

只有
[xmlclude]
是必需的。为什么我不能将从该类中的其他web服务检索到的对象作为对象类型发送?@cagin-因为对象不是隐式序列化的,序列化程序必须知道其序列化的内容。确定。我想把情况弄清楚。我有返回对象的web服务。这些对象是使用自己的类库生成的。这个库连接其他web服务并检索对象(当然可以序列化),并将它们传递给web服务以发送回客户端。一个对象来自其他web服务,但我的主要web服务无法将这些对象发送回客户端。。。您认为这符合逻辑吗?仅供参考,XML序列化程序忽略了
[Serializable]
属性。您使用的是ASMX还是WCF web服务?我假设您试图创建一个半通用服务,这意味着您甚至不知道(在编译时)响应中可能包含哪些类型的信息。我很想知道你是否能得到有用的答案。