コード例 #1
0
 protected override void StoreCore(XmlWriterContext context, RectangleF value)
 {
     context.StoreInAttribute("X", XmlConvert.ToString(value.X));
     context.StoreInAttribute("Y", XmlConvert.ToString(value.Y));
     context.StoreInAttribute("Width", XmlConvert.ToString(value.Width));
     context.StoreInAttribute("Height", XmlConvert.ToString(value.Height));
 }
コード例 #2
0
ファイル: XmlAdapter.cs プロジェクト: oqewok/gitter
 public void Store(XmlWriterContext context, Parameter parameter)
 {
     context.Push(parameter.Name);
     context.StoreInAttribute("Type", EncodeTypeName(parameter.Type));
     try
     {
         context.StoreInAttribute(parameter.Value.ToString());
     }
     finally
     {
         context.Pop();
     }
 }
コード例 #3
0
ファイル: XmlAdapter.cs プロジェクト: oqewok/gitter
            public void Store(XmlWriterContext context, Parameter parameter)
            {
                var arr  = (Array)parameter.Value;
                int rank = arr.Rank;

                int[] values  = new int[rank];
                int[] ubounds = new int[rank];
                int[] lbounds = new int[rank];
                var   sb      = new StringBuilder();
                bool  empty   = true;

                for (int i = 0; i < rank; ++i)
                {
                    lbounds[i] = values[i] = arr.GetLowerBound(i);
                    ubounds[i] = arr.GetUpperBound(i);
                    int l = ubounds[i] - lbounds[i] + 1;
                    if (l > 0)
                    {
                        empty = false;
                    }
                    sb.Append(l);
                    if (i != rank - 1)
                    {
                        sb.Append(';');
                    }
                }
                context.Push(parameter.Name);
                context.StoreInAttribute("Type", EncodeTypeName(parameter.Type));
                context.StoreInAttribute("Array", sb.ToString());
                try
                {
                    if (!empty)
                    {
                        var  etype = parameter.Type.GetElementType();
                        bool inc   = true;
                        while (inc)
                        {
                            var value = arr.GetValue(values);
                            var p     = new Parameter("Item", TypeHelpers.GetType(etype, value), value);
                            ParameterPersister.Store(context, p);
                            inc = Increment(values, lbounds, ubounds);
                        }
                    }
                }
                finally
                {
                    context.Pop();
                }
            }
コード例 #4
0
ファイル: XmlAdapter.cs プロジェクト: oqewok/gitter
        public void Store(Section section)
        {
            var doc     = new XmlDocument();
            var context = new XmlWriterContext(doc);

            SectionPersister.Store(context, section);
            using (var writer = XmlWriter.Create(_stream, new XmlWriterSettings()
            {
                CloseOutput = false,
                Encoding = System.Text.Encoding.UTF8,
                Indent = true,
                IndentChars = "\t",
            }))
            {
                doc.Save(writer);
            }
        }
コード例 #5
0
ファイル: XmlAdapter.cs プロジェクト: oqewok/gitter
            public static void Store(XmlWriterContext context, Parameter parameter)
            {
                IXmlPersister persister = null;

                if (parameter.Type.IsEnum)
                {
                    Persisters.TryGetValue(typeof(Enum), out persister);
                }
                else if (parameter.Type.IsArray)
                {
                    Persisters.TryGetValue(typeof(Array), out persister);
                }
                else
                {
                    Persisters.TryGetValue(parameter.Type, out persister);
                }
                if (persister != null)
                {
                    persister.Store(context, parameter);
                }
            }
コード例 #6
0
ファイル: XmlAdapter.cs プロジェクト: oqewok/gitter
            public static void Store(XmlWriterContext context, Section section)
            {
                context.Push(section.Name);
                int sections   = section.SectionCount;
                int parameters = section.ParameterCount;

                if (parameters != 0 || sections != 0)
                {
                    bool saveDirect = sections == 0 || parameters == 0;
                    if (parameters == 0)
                    {
                        context.StoreInAttribute("Style", "NoParameters");
                    }
                    else if (sections == 0)
                    {
                        context.StoreInAttribute("Style", "NoSections");
                    }
                    if (section.SectionCount != 0)
                    {
                        if (!saveDirect)
                        {
                            context.Push("Sections");
                        }
                        try
                        {
                            foreach (var subsection in section.Sections)
                            {
                                SectionPersister.Store(context, subsection);
                            }
                        }
                        finally
                        {
                            if (!saveDirect)
                            {
                                context.Pop();
                            }
                        }
                    }
                    if (section.ParameterCount != 0)
                    {
                        if (!saveDirect)
                        {
                            context.Push("Parameters");
                        }
                        try
                        {
                            foreach (var parameter in section.Parameters)
                            {
                                ParameterPersister.Store(context, parameter);
                            }
                        }
                        finally
                        {
                            if (!saveDirect)
                            {
                                context.Pop();
                            }
                        }
                    }
                }
                context.Pop();
            }
コード例 #7
0
ファイル: XmlAdapter.cs プロジェクト: oqewok/gitter
 protected override void StoreCore(XmlWriterContext context, PointF value)
 {
     context.StoreInAttribute("X", XmlConvert.ToString(value.X));
     context.StoreInAttribute("Y", XmlConvert.ToString(value.Y));
 }
コード例 #8
0
ファイル: XmlAdapter.cs プロジェクト: oqewok/gitter
 protected override void StoreCore(XmlWriterContext context, string value)
 {
     context.StoreInAttribute(value);
 }
コード例 #9
0
ファイル: XmlAdapter.cs プロジェクト: oqewok/gitter
 protected override void StoreCore(XmlWriterContext context, Guid value)
 {
     context.StoreInAttribute(XmlConvert.ToString(value));
 }
コード例 #10
0
ファイル: XmlAdapter.cs プロジェクト: oqewok/gitter
 protected override void StoreCore(XmlWriterContext context, DateTime value)
 {
     context.StoreInAttribute(XmlConvert.ToString(value, XmlDateTimeSerializationMode.Utc));
 }
コード例 #11
0
ファイル: XmlAdapter.cs プロジェクト: oqewok/gitter
 protected abstract void StoreCore(XmlWriterContext context, T value);