当前位置: 首页 > 知识库问答 >
问题:

在C#中将xml反序列化为类时,从XmlTextAttribute获取int值

江智
2023-03-14

xml如下所示:

<Item>
   <Winner>2</Winner>
</Item>

    public enum HomeOrAwayTeamType {Home =1,Away =2,Draw =3,NA = 0};

    class Item
    {
        [XmlIgnore]
        public virtual HomeOrAwayTeamType Winner { get; set; }

        [XmlElement(ElementName = "Winner"), XmlText]
        public virtual string WinnerSerializer
        {
            get { return this.Winner.ToString(); }
            set
            {
                //get 'Away' from HomeOrAwayTeamType
                this.Winner = (HomeOrAwayTeamType)2; //ok
                this.Winner = (HomeOrAwayTeamType)Convert.ToInt32("2"); //ok
                this.Winner = (HomeOrAwayTeamType)int.parse("2"); //ok 

                //get 'NA' from HomeOrAwayTeamType
                this.Winner = (HomeOrAwayTeamType)Convert.ToInt32(value); //fail
                this.Winner = (HomeOrAwayTeamType)int.parse(value); //fail
             }
         }    
    }

    string xml = ""; //xml code
    Item model = default(Item);

    using (var reader = XmlReader.Create(new StringReader(xml)))
    {
        var serializer = new XmlSerializer(typeof(Item));
        model = (Item)serializer.Deserialize(reader);
    }

共有1个答案

贲铭
2023-03-14

您的xml字符串为空。这对我有用:

string xml = "<Item><Winner>2</Winner></Item>"; //xml code

this.winner设置为离开

 类似资料:
  • 我想序列化一些XML。我的代码运行正常,但序列化不成功,对象为空,而不是填充数据。该值只是类型值:{OrangeCdToCollectorz.OrangeCd}。我怀疑我的阶级定义。以下是我正在序列化的类: 这是我的代码,尝试使用几种众所周知的技术对相同的XML进行反序列化,无论是作为字符串const还是来自文件: 以下是源XML的示例

  • 问题内容: 我正在尝试反序列化此JSON 我尝试使用Json.NET,并尝试使用ServiceStack的反序列化器,但似乎无法获得此JSON的任何类型的表示形式。 我认为阻止我的主要因素是键是Int,但是我无法控制收到的JSON。 这是我建立的C#类 我更喜欢使用ServiceStack,但是任何其他可以运行的反序列化器都将非常有用 var data = client.Get(json); 问题

  • 是否有可能在C中序列化一个类,并使用协议缓冲区将其反序列化为C#中的类似类?我已经尝试过Json序列化来克服不同平台中的序列化问题,但它在一些数据类型上存在问题,如数组列表等。那么关于使用谷歌协议缓冲区有什么建议吗?

  • 我在尝试“反序列化”对象时遇到以下错误: 我需要能够使用这个XStream库序列化/反序列化对象,甚至是那些没有参数构造函数的对象。

  • 问题内容: 我有一个具有以下结构的JSON有效负载… …映射到以下类: 目前,如果用户提交的浮点值,则将忽略小数,并且仅接受整数部分。我想要做的是防止用户提交带有浮动值的有效负载(请参见下文)并引发异常(类似于“第8列第5行的“年龄”字段的JSON值无效”),这是标准做法反序列化失败时出现错误消息)。 我正在考虑为数字值实现自定义反序列化器,但想知道是否有更简单的方法来实现此目的。 问题答案: 在

  • 本文向大家介绍详解 C# 中XML对象的序列化和反序列化,包括了详解 C# 中XML对象的序列化和反序列化的使用技巧和注意事项,需要的朋友参考一下 这一篇主要是用来介绍关于C#中的XML序列化的问题,这个相信大家一定会经常使用它,特别是在WPF中,有时候我们需要将我们后台的数据保存在数据库中,从而在软件下一次启动的时候能够自动去加载这些数据,由于我们的这些Model中字段众多,如果单独进行保存那是