我有以下要反序列化的 XML 文件:
<RoutesConfiguration>
<RouteList>
<SpecialRoute Name="Url" Urlpattern="MyUrl">
<Defaults>
<Item>
<Key>controller</Key>
<Value>Rss</Value>
</Item>
<Item>
<Key>action</Key>
<Value>LastItems</Value>
</Item>
<Item>
<Key>id</Key>
<Value>1</Value>
</Item>
</Defaults>
</SpecialRoute>
</RouteList>
</RoutesConfiguration>
这是我的反序列化代码:
StreamReader reader = new StreamReader(Server.MapPath(ConfigurationManager.AppSettings["RoutesConfigurationPath"]));
var routes = (RoutesConfiguration)serializer.Deserialize(reader);
此类代表我的 XML 文件中的每个“项目”元素。
public class Item
{
public string Key { get; set; }
public object Value { get; set; }
}
我的反序列化实例没问题,但是每个项目的属性“值”都有一个问题。
这个“值”属性被反序列化为System.Xml.XmlNode[]。问题是我不能将此属性键入字符串或 int,因为此值可以设置为两种类型。出于这个原因,我输入了“对象”。
你知道有什么方法可以从反序列化中得到正确的类型而不是这个 XmlNode 数组吗?
谢谢
问候。
何塞