Exemplo n.º 1
0
        public void WriteObjectDictionary(ObjectDictionaryAttribute attribute, object writer,
                                          object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
        {
            XmlWriter   xmlWriter   = writer.Convert <XmlWriter>();
            PrefixTable prefixTable = serializerData.Convert <PrefixTable>();

            WriteStartElement(xmlWriter, info.QName, prefixTable);
            IDictionary dict = value as IDictionary;

            if (dict != null)
            {
                foreach (DictionaryEntry item in dict)
                {
                    Write(writer, item.Value, info.ModelName, settings,
                          QName.Get(item.Key.ToString()), prefixTable, null);
                    //xmlWriter.WriteStartElement(item.Key.ToString());
                    //InternalWriteXml(writer, item.Value, info.ModelName, settings, prefixTable);
                    //xmlWriter.WriteEndElement();
                }
            }

            xmlWriter.WriteEndElement();
        }
Exemplo n.º 2
0
        public void WriteAttribute(SimpleAttributeAttribute attribute, object writer,
                                   object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
        {
            if (ObjectUtil.IsDefaultValue(attribute.DefaultValue, value))
            {
                return;
            }

            XmlWriter xmlWriter = writer.Convert <XmlWriter>();
            QName     name      = info.QName;

            if (name.HasNamespace)
            {
                PrefixTable prefix = serializerData.Convert <PrefixTable>();
                xmlWriter.WriteAttributeString(prefix.GetPrefix(name.Namespace), name.LocalName,
                                               name.Namespace, ObjectUtil.ToString(info.Converter, value, settings));
            }
            else
            {
                xmlWriter.WriteAttributeString(name.LocalName,
                                               ObjectUtil.ToString(info.Converter, value, settings));
            }
        }
Exemplo n.º 3
0
        public void WriteObject(object writer, object receiver, string modelName,
                                WriteSettings settings, QName root, object serializerData)
        {
            XmlWriter xmlWriter   = writer.Convert <XmlWriter>();
            var       prefixTable = serializerData.Convert <PrefixTable>();

            WriteStartElement(xmlWriter, root, prefixTable);
            ObjectInfo info = ObjectInfo.Create(receiver, modelName);

            if (info.IsObjectContext)
            {
                TkDebug.ThrowIfNoGlobalVariable();
                BaseGlobalVariable.Current.ObjectContext.Push(receiver);
            }

            foreach (var attr in info.Attributes)
            {
                SerializerUtil.WritePropertyInfo(this, writer, receiver,
                                                 settings, attr, prefixTable);
            }
            if (info.Content != null)
            {
                SerializerUtil.WritePropertyInfo(this, writer, receiver,
                                                 settings, info.Content, prefixTable);
            }
            else
            {
                SerializerUtil.WriteChildElement(this, writer, info.Elements, settings, receiver,
                                                 (objValue, propInfo) => propInfo.GetValue(objValue), prefixTable);
            }

            if (info.IsObjectContext)
            {
                BaseGlobalVariable.Current.ObjectContext.Pop();
            }
            xmlWriter.WriteEndElement();
        }
Exemplo n.º 4
0
        public void WriteElement(SimpleElementAttribute attribute, object writer,
                                 object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
        {
            if (!attribute.IsMultiple && ObjectUtil.IsDefaultValue(attribute.DefaultValue, value))
            {
                return;
            }

            XmlWriter   xmlWriter   = writer.Convert <XmlWriter>();
            PrefixTable prefixTable = serializerData.Convert <PrefixTable>();

            WriteStartElement(xmlWriter, info.QName, prefixTable);
            string data = ObjectUtil.ToString(info.Converter, value, settings);

            if (attribute.UseCData)
            {
                xmlWriter.WriteCData(data);
            }
            else
            {
                xmlWriter.WriteString(data);
            }
            xmlWriter.WriteEndElement();
        }
Exemplo n.º 5
0
        public static DataTable CreateTable(this IEnumerable list, string tableName,
                                            string modelName, WriteSettings settings)
        {
            TkDebug.AssertArgumentNullOrEmpty(tableName, "tableName", null);
            TkDebug.AssertArgumentNull(settings, "settings", null);

            if (list == null)
            {
                return(null);
            }

            object value = list.Cast <object>().FirstOrDefault();

            if (value == null)
            {
                return(null);
            }

            ObjectInfo info  = ObjectInfo.Create(value, modelName);
            DataTable  table = new DataTable(tableName)
            {
                Locale = ObjectUtil.SysCulture
            };

            CreateTableStructure(info, table);
            IObjectSerializer serializer = ObjectExtension.CreateSerializer("DataRow");

            foreach (var item in list)
            {
                DataRow row    = table.NewRow();
                object  writer = serializer.CreateCustomWriter(row);
                serializer.WriteObject(writer, item, null, settings, QName.Toolkit, null);
                table.Rows.Add(row);
            }
            return(table);
        }
Exemplo n.º 6
0
 protected abstract void Write(IObjectSerializer serializer, object writer, object value,
                               WriteSettings settings, ObjectPropertyInfo info, object serializerData);
Exemplo n.º 7
0
 public object CreateWriter(Stream stream, WriteSettings settings)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 8
0
 public object BeginWrite(object writer, object receiver, WriteSettings settings, QName root)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 9
0
 public void WriteList(object writer, IEnumerable receiver, SimpleElementAttribute attribute,
                       string modelName, WriteSettings settings, QName root, object serializerData)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 10
0
 public void WriteComplexContent(ComplexContentAttribute attribute, object writer,
                                 object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 11
0
 protected override void Write(IObjectSerializer serializer, object writer,
                               object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     throw new NotSupportedException();
 }
Exemplo n.º 12
0
 public object BeginWrite(object writer, object receiver, WriteSettings settings, QName root)
 {
     return(null);
 }
Exemplo n.º 13
0
 public static string WriteJson(this object receiver, WriteSettings settings)
 {
     return(WriteToString(receiver, "Json", null, settings, QName.Toolkit));
 }
Exemplo n.º 14
0
 public static string WriteXml(this object receiver, WriteSettings settings, QName root)
 {
     return(WriteXml(receiver, null, settings, root));
 }
Exemplo n.º 15
0
 public void WriteObject(IObjectSerializer serializer, object writer, object value,
                         WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     Write(serializer, writer, value, settings, info, serializerData);
 }
Exemplo n.º 16
0
 public void WriteComplexContent(ComplexContentAttribute attribute, object writer,
                                 object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     TkDebug.ThrowToolkitException("Json不支持ComplexContent节点", this);
 }
Exemplo n.º 17
0
 public void Write(object writer, object receiver, string modelName, WriteSettings settings,
                   QName root, object serializerData, BaseObjectAttribute attribute)
 {
     SerializerUtil.WriteObject(this, writer, receiver, modelName, settings,
                                root, attribute, null, SerializerOptions.All);
 }
Exemplo n.º 18
0
 public void WriteAttribute(SimpleAttributeAttribute attribute, object writer,
                            object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     SetValue(writer, info, info.LocalName, value, settings);
 }
Exemplo n.º 19
0
        public void EndWrite(object writer, object receiver, WriteSettings settings)
        {
            JsonTextWriter jsonWriter = writer.Convert <JsonTextWriter>();

            jsonWriter.Flush();
        }
Exemplo n.º 20
0
 public void WriteComplexElement(SimpleComplexElementAttribute attribute, object writer,
                                 object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     WriteElement(attribute, writer, value, settings, info, serializerData);
 }
Exemplo n.º 21
0
 public void WriteDynamicDictionary(DynamicDictionaryAttribute attribute, object writer,
                                    object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     throw new NotSupportedException();
 }
Exemplo n.º 22
0
 public void WriteTextContent(TextContentAttribute attribute, object writer,
                              object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     SetValue(writer, info, ObjectInfo.CONTENT_NAME, value, settings);
 }
Exemplo n.º 23
0
 public void WriteObject(object writer, object receiver, string modelName,
                         WriteSettings settings, QName root, object serializerData)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 24
0
 public void WriteObject(object writer, object receiver, string modelName,
                         WriteSettings settings, QName root, object serializerData)
 {
     WriteAObject(writer, receiver, modelName, settings);
 }
Exemplo n.º 25
0
 public void WriteDictionary(object writer, IDictionary receiver, BaseDictionaryAttribute attribute,
                             string modelName, WriteSettings settings, QName root, object serializerData)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 26
0
 public void EndWrite(object writer, object receiver, WriteSettings settings)
 {
 }
Exemplo n.º 27
0
 public void EndWrite(object writer, object receiver, WriteSettings settings)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 28
0
 public string ConvertToString(object value, WriteSettings settings)
 {
     return(fConverter.ConvertToString(value));
 }
Exemplo n.º 29
0
 protected override void Write(IObjectSerializer serializer, object writer, object value,
                               WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     serializer.WriteElement(this, writer, value, settings, info, serializerData);
 }
Exemplo n.º 30
0
 public void WriteAttribute(SimpleAttributeAttribute attribute, object writer,
                            object value, WriteSettings settings, ObjectPropertyInfo info,
                            object serializerData)
 {
     WriteSimpleElement(attribute, writer, value, settings, info, attribute.UseSourceType);
 }