嗨,我打麻煩構造一個XmlSerializer其中額外的類型包含具有相同名稱(但唯一全名)的類型。下面是一個例子,說明了我的情況。在外部組件XmlSerializer結構具有相同的命名額外類型
類型定義我不能操縱:
public static class Wheel
{
public enum Status { Stopped, Spinning }
}
public static class Engine
{
public enum Status { Idle, Full }
}
I類已經寫和具有控制:
public class Car
{
public Wheel.Status WheelStatus;
public Engine.Status EngineStatus;
public static string Serialize(Car car)
{
var xs = new XmlSerializer(typeof(Car), new[] {typeof(Wheel.Status),typeof(Engine.Status)});
var output = new StringBuilder();
using (var sw = new StringWriter(output))
xs.Serialize(sw, car);
return output.ToString();
}
}
XmlSerializer的構造函數拋出與消息A System.InvalidOperationException
「時發生錯誤,反射型‘Engine.Status’」
此異常具有類型System.InvalidOperationException消息的並用的InnerException
「類型‘Wheel.Status’和「發動機.Status'都使用名稱空間''中的XML類型名稱'狀態'。使用XML屬性來指定類型的唯一的XML名稱和/或命名空間。」
既然我不能改變枚舉類型,我怎麼能構建一個XmlSerializer將成功序列化的車呢?