序列化时Web服务和System.InvalidOperationException

时间:2010-02-04 15:01:41

标签: c# soap web-services

我有以下类在序列化类时抛出InvalidOperationException

public class CustomFieldList : CustomField, IList
  {
        public CustomFieldList()
        {
              this.ControlType = Rflex.Framework.MetaData.ControlType.DDL;
        }
        public Type ReferentielType { get; set; }
        public int? CustomCodeTableTypeID { get; set; }
        public CustomCodeTableItem Value { get; set; }
        public override object TheValue { get { return Value; } }
  }

它无法序列化类型,这可能是正常的事情吗?

堆栈(从法语翻译错误,因此不准确):

  

System.InvalidOperationException:处理XML时出错。 ---> System.InvalidOperationException:无法识别类型Rflex.WebServices.Objects.Reference.CustomCodeTableItem。使用XmlInclude或SoapInclude属性来指定类型.....      àMicrosoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write32_Type(String n,String ns,Type o,Boolean isNullable,Boolean needType)      àMicrosoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write33_CustomFieldList(String n,String ns,CustomFieldList o,Boolean isNullable,Boolean needType)      àMicrosoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write74_JobDescription(String n,String ns,JobDescription o,Boolean isNullable,Boolean needType)      àMicrosoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write77_Offer(String n,String ns,Offer o,Boolean isNullable,Boolean needType)      àMicrosoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write96_Offer(Object o)      àMicrosoft.Xml.Serialization.GeneratedAssembly.OfferSerializer.Serialize(Object objectToSerialize,XmlSerializationWriter writer)      àSystem.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter,Object o,XmlSerializerNamespaces namespaces,String encodingStyle,String id)

我试过了属性,但它不想工作。

先谢谢。

1 个答案:

答案 0 :(得分:0)

你需要这个:

[XmlInclude(typeof(Rflex.WebServices.Objects.Reference.CustomCodeTableItem))]

添加到您的Web服务实际返回的类型。