首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataContractJsonSerializer看不到DataMemberAttribute

问DataContractJsonSerializer看不到DataMemberAttribute
EN

Stack Overflow用户
提问于 2010-02-11 20:21:50
回答 1查看 875关注 0票数 2

我已经从(优秀的) PropertyBag类派生,然后希望使用DataContractJsonSerializer序列化到Json。不幸的是,尽管动态属性是用DataContractAttribute创建的,但它并没有显示在JSON中。如何序列化这些动态属性?

代码语言:javascript
复制
using System;
using System.ComponentModel;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;

namespace JsonProperties
{
    [DataContract]
    class MyClass : PropertyBag
    {
        static MyClass()
        {
            Attribute att_lat = new DisplayNameAttribute("Latitude");
            Attribute att_data = new DataMemberAttribute();

            Attribute[] attribs_lat = { att_lat, att_data };

            MyClass.AddProperty("_Latitude", typeof(String), attribs_lat);
        }
        [DataMember]
        public Decimal latitude
        {
            get { return (Decimal)this["_Latitude"]; }
            set
            { // Validation etc.
                this["_Latitude"] = value;
            }
        }
    }

    class Program
        {
            static void Main(string[] args)
            {
                Attribute attr1 = new DisplayNameAttribute("Dynamic Note Property");
                Attribute attr2 = new DataContractAttribute();
                Attribute[] attrs = { attr1, attr2 };

                MyClass.AddProperty("Notes", typeof(String), attrs);
                MyClass location = new MyClass();

                location.latitude = 0.1M;
                location["Notes"] = "Some text";

                DataContractJsonSerializer dcjs = new DataContractJsonSerializer(typeof(MyClass));
                dcjs.WriteObject(Console.OpenStandardOutput(), location);
                Console.ReadLine();
            }
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2011-02-04 03:06:19

"Notes“属性应该用DataMemberAttribute来装饰,这样它才能被JSON序列化程序拾取。而不是您在这里使用的DataContractAttirbute。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2244316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档