点击或拖拽改变大小

SerializeSettingMemberType 属性

获取或设置在产生增量时类或结构中哪些类型的成员参与序列化。

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

属性值

类型: SerializeMemberType
默认为 Property

实现

ISerializeSettingMemberType
示例

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

C#
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace XPatchLib.Example
{
    public class Modifier
    {
        class Invoice
        {
            public Invoice()
            {
                Company = "C";
                Amount = 1.2m;
                Paid = true;
                PaidDate = new DateTime(2008, 8, 8);
            }

            public string Company { get; set; }
            protected decimal Amount { get; set; }

            private bool Paid { get; set; }

            internal DateTime PaidDate { get; set; }
        }

        public static void Main()
        {
            //输出内容如下:
            /*
             * <?xml version="1.0" encoding="utf-16"?>
             * <Invoice>
             *   <Company>C</Company>
             * </Invoice>
             */
            Console.WriteLine(DoSerializer(SerializeMemberModifier.Public));

            //输出内容如下:
            /*
             * <?xml version="1.0" encoding="utf-16"?>
             * <Author>
             *   <Paid>true</Paid>
             * </Author>
             */
            Console.WriteLine(DoSerializer(SerializeMemberModifier.Private));

            //输出内容如下:
            /*
             * <?xml version="1.0" encoding="utf-16"?>
             * <Author>
             *   <Amount>1.2</Amount>
             * </Author>
             */
            Console.WriteLine(DoSerializer(SerializeMemberModifier.Protected));

            //输出内容如下:
            /*
             * <?xml version="1.0" encoding="utf-16"?>
             * <Author>
             *   <PaidDate>2008-08-08T00:00:00</PaidDate>
             * </Author>
             */
            Console.WriteLine(DoSerializer(SerializeMemberModifier.Internal));

            //输出内容如下:
            /*
             * <?xml version="1.0" encoding="utf-16"?>
             * <Author>
             *   <Amount>1.2</Amount>
             *   <Paid>true</Paid>
             *   <PaidDate>2008-08-08T00:00:00</PaidDate>
             * </Author>
             */
            Console.WriteLine(DoSerializer(SerializeMemberModifier.NonPublic));

            //输出内容如下:
            /*
             * <?xml version="1.0" encoding="utf-16"?>
             * <Author>
             *   <Amount>1.2</Amount>
             *   <Company>C</Company>
             *   <Paid>true</Paid>
             *   <PaidDate>2008-08-08T00:00:00</PaidDate>
             * </Author>
             */
            Console.WriteLine(DoSerializer(SerializeMemberModifier.All));
        }

        static string DoSerializer(SerializeMemberModifier modifier)
        {
            using (Serializer serializer = new Serializer(typeof(Author)))
            {
                StringBuilder sb = new StringBuilder();
                using (StringWriter sw = new StringWriter(sb))
                {
                    using (XmlTextWriter writer = new XmlTextWriter(sw))
                    {
                        writer.Setting.Modifier = modifier;
                        serializer.Divide(writer, null, new Invoice());
                    }
                }
                return sb.ToString();
            }
        }
    }
}
版本信息

.NET Framework

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

.NET Standard

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