我有一個類型MyParameter我作爲參數傳遞給WCF服務WCF序列化問題
[Serializable]
public class MyParameter : IXmlSerializable
{
public string Name { get; set; }
public string Value { get; set; }
public string Mytype { get; set; }
#region IXmlSerializable Members
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(System.Xml.XmlReader reader)
{
XElement e = XElement.Parse(reader.ReadOuterXml());
IEnumerable<XElement> i = e.Elements();
List<XElement> l = new List<XElement>(i);
Name = l[0].Name.ToString();
Value = l[0].Value.ToString();
Mytype = l[0].Attribute("type").Value.ToString();
}
public void WriteXml(System.Xml.XmlWriter writer)
{
writer.WriteStartElement(Name);
writer.WriteAttributeString("xsi:type", Mytype);
writer.WriteValue(Value);
writer.WriteEndElement();
}
#endregion
}
服務合同是這樣的:
[ServiceContract]
public interface IOperation
{
[OperationContract]
void Operation(List<Data> list);
}
如果數據定義數據合同
[DataContract]
public class Data
{
public string Name { get; set; }
public List<MyParameter> Parameters{ get; set; }
}
當我運行服務並測試它時 我在readXml MyParameter中遇到了異常 「前綴XSI沒有定義」 XSI應該定義命名空間「http://w3.org/2001/xmlschema-instance」
我該如何解決這個問題
我很新的這這樣一個示例代碼將是非常非常非常有幫助 感謝
你爲什麼不解釋一下你想要完成的任務?自定義序列化?或者你只是想發送一個自定義類型的列表? – Nix 2010-08-17 12:50:34