点击或拖拽改变大小

SerializeSettingSerializeDefalutValue 属性

获取或设置是否序列化默认值。

命名空间:  XPatchLib
程序集:  XPatchLib (在 XPatchLib.dll 中) 版本:4.1.0.4
语法
C#
public virtual bool SerializeDefalutValue { get; set; }

属性值

类型: Boolean
默认为 false

实现

ISerializeSettingSerializeDefalutValue
示例

下面的示例展示了 SerializeDefalutValue 的使用效果。

C#
using System;
using System.ComponentModel;
using System.IO;
using System.Text;

namespace XPatchLib.Example
{
    public class SerializeDefalutValue
    {
        static readonly CreditCard card = new CreditCard
        {
            CardNumber = "0123456789",
            CardExpiration = "05/17",
            CardCode = 0
        };

        public static void Main()
        {
            CreditCard card = new CreditCard
            {
                CardNumber = "0123456789",
                CardExpiration = "05/17",
                CardCode = 0
            };
            /*
             * 输出内容:
             * <?xml version=""1.0"" encoding=""utf-8""?>
             * <CreditCard>
             *   <CardExpiration>05/17</CardExpiration>
             *   <CardNumber>0123456789</CardNumber>
             * </CreditCard>
             */
            Console.WriteLine(DoSerialize(card));
            /*
             * 输出内容:
             * <?xml version=""1.0"" encoding=""utf-8""?>
             * <CreditCard>
             *   <CardCode>0</CardCode>
             *   <CardExpiration>05/17</CardExpiration>
             *   <CardNumber>0123456789</CardNumber>
             * </CreditCard>
             */
            Console.WriteLine(DoSerialize(card, true));

            card.CardNumber = "0000";
            /*
             * 输出内容:
             * <?xml version=""1.0"" encoding=""utf-8""?>
             * <CreditCard>
             *   <CardCode>0</CardCode>
             *   <CardExpiration>05/17</CardExpiration>
             * </CreditCard>
             */
            Console.WriteLine(DoSerialize(card));
        }

        static string DoSerialize(CreditCard card, bool serializeDefaultValue = false)
        {
            StringBuilder result = new StringBuilder();
            using (Serializer serializer = new Serializer(typeof(string[])))
            {
                using (StringWriter writer = new StringWriter(result))
                {
                    using (XmlTextWriter xmlWriter = new XmlTextWriter(writer))
                    {
                        xmlWriter.Setting.SerializeDefalutValue = serializeDefaultValue;
                        serializer.Divide(xmlWriter, null, card);
                    }
                }
            }
            return result.ToString();
        }
    }


    public class CreditCard
    {
        public int CardCode { get; set; }

        public string CardExpiration { get; set; }

        [DefaultValue("0000")]
        public string CardNumber { get; set; }
    }
}
版本信息

.NET Framework

支持版本:4.5, 4.0, 3.5, 2.0

.NET Standard

支持版本:2.0, 1.3, 1.0
参见