0
我使用的數據源始終通過具有相同父類(xml中的模型)的數據與xsi:type一起發送,以確定類的實際類型。這一直工作正常,直到他們開始向xsi:type添加一個名稱空間。現在不管我嘗試什麼,它都不會反序列化。反序列化具有多個名稱空間的xml
這裏的XML:
<ModelResource xmlns:ot="http://www.example.com/otSpace">
<Models xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xsi:type="ot:myChildClass">
Stuff here
</Models>
</ModelResource>
根節點
[XmlRoot("ModelResource")]
public class XmlRoot
{
[XmlElement("Models")]
public List<BaseObject> Bases { get; set; }
}
父類
[XmlInclude(typeof(MyChildClass))]
public abstract class BaseObject
{
}
子類
[XmlType(TypeName = "myChildClass", Namespace = "http://www.example.com/otSpace")]
public class MyChildClass : BaseObject
{
}
當我反序列化這個XML,我風與錯誤:
{ 「指定的類型無法識別:名稱= 'myChildClass',命名空間= 'http://www.example.com/otSpace' 在。」}
感謝你的幫助。
謝謝!明確地將父命名空間設置爲「」是缺失的部分。現在我不得不處理MyChildClass屬於該名稱空間的事實,它的任何屬性都不屬於該名稱空間,所以我需要將它們全部明確地設置爲「」,但這只是繁忙工作。 – JumboMaximus