0

我有以下要反序列化的 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 数组吗?

谢谢

问候。

何塞

4

0 回答 0