private void StartNode(object value)
        {
            if (value == null)
            {
                Console.Write("NULL");
            }

            Type type = value != null?value.GetType() : typeof(object);

            foreach (Alias alias in aliases)
            {
                string nodeAlias;
                if (alias.TryGetAlias(type, out nodeAlias))
                {
                    writer.StartNode(nodeAlias);
                    return;
                }
            }

            // TODO:  Look into refactoring the Xmlifier to be more cross-platform friendly
            if (value is IList)
            {
                writer.StartNode("list");
            }
            else if (value is String)
            {
                writer.StartNode("string");
            }
            else
            {
                writer.StartNode(Xmlifier.XmlifyNode(type));
            }
            //  classType is not valid for cross platform usage
            //writer.WriteAttribute(Attributes.classType, type.AssemblyQualifiedName);
        }
示例#2
0
        private void StartNode(object value)
        {
            Type type = value != null?value.GetType() : typeof(object);

            foreach (Alias alias in aliases)
            {
                string nodeAlias;
                if (alias.TryGetAlias(type, out nodeAlias))
                {
                    writer.StartNode(nodeAlias);
                    return;
                }
            }
            writer.StartNode(Xmlifier.XmlifyNode(type));
            writer.WriteAttribute(Attributes.classType, type.AssemblyQualifiedName);
        }
示例#3
0
        private object ConvertField(Type fieldType)
        {
            string classAttribute = reader.GetAttribute(Attributes.classType);

            if (!string.IsNullOrEmpty(classAttribute))
            {
                fieldType = Type.GetType(Xmlifier.UnXmlify(classAttribute));
            }
            Converter converter = converterLookup.GetConverter(fieldType);

            if (converter != null)
            {
                return(converter.FromXml(reader, context));
            }
            else
            {
                return(Unmarshal(fieldType));
            }
        }