点击或拖拽改变大小

SerializeSettingMode 属性

获取或设置在字符串与 DateTime 之间转换时,如何处理时间值。

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

属性值

类型: DateTimeSerializationMode
默认为 RoundtripKind

实现

ISerializeSettingMode
示例

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

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

namespace XPatchLib.Example
{
    public class Mode
    {
        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>
             *   <PaidDate>2008-08-08T00:00:00+08:00</PaidDate>
             * </Invoice>
             */
            Console.WriteLine(DoSerializer(DateTimeSerializationMode.Local));

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

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

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

        static string DoSerializer(DateTimeSerializationMode mode)
        {
            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.Mode = mode;
                        writer.Setting.Modifier = SerializeMemberModifier.Internal;
                        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
参见