示例#1
0
            public static Parameter Load(XmlReaderContext context)
            {
                var type = DecodeTypeName(context.LoadFromAttribute("Type"));

                if (type == null)
                {
                    throw new NotSupportedException();
                }
                var           name      = context.CurrentName;
                IXmlPersister persister = null;

                if (type.IsEnum)
                {
                    Persisters.TryGetValue(typeof(Enum), out persister);
                }
                else if (type.IsArray)
                {
                    Persisters.TryGetValue(typeof(Array), out persister);
                }
                else
                {
                    Persisters.TryGetValue(type, out persister);
                }
                if (persister != null)
                {
                    return(new Parameter(name, type, persister.LoadValue(context)));
                }
                else
                {
                    return(new Parameter(name, type, null));
                }
            }
示例#2
0
            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);
                }
            }