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)); } }
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); } }