我有以下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文件中的每个“Item”元素。
public class Item
{
public string Key { get; set; }
public object Value { get; set; }
}
我让我的反序列化实例没问题,但是每个项目的属性“Value”都有一个问题。
此“值”属性正在反序列化为 System.Xml.XmlNode [] 。问题是我无法将此属性键入string或int,因为此值可以设置为两种类型。因此我输入“对象”。
你知道从反序列化获得正确类型而不是这个XmlNode数组的任何方法吗?
由于
问候。
何塞