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(); }
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)); } }
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(); }
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(); }
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); }
protected abstract void Write(IObjectSerializer serializer, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData);
public object CreateWriter(Stream stream, WriteSettings settings) { throw new NotImplementedException(); }
public object BeginWrite(object writer, object receiver, WriteSettings settings, QName root) { throw new NotImplementedException(); }
public void WriteList(object writer, IEnumerable receiver, SimpleElementAttribute attribute, string modelName, WriteSettings settings, QName root, object serializerData) { throw new NotImplementedException(); }
public void WriteComplexContent(ComplexContentAttribute attribute, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData) { throw new NotImplementedException(); }
protected override void Write(IObjectSerializer serializer, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData) { throw new NotSupportedException(); }
public object BeginWrite(object writer, object receiver, WriteSettings settings, QName root) { return(null); }
public static string WriteJson(this object receiver, WriteSettings settings) { return(WriteToString(receiver, "Json", null, settings, QName.Toolkit)); }
public static string WriteXml(this object receiver, WriteSettings settings, QName root) { return(WriteXml(receiver, null, settings, root)); }
public void WriteObject(IObjectSerializer serializer, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData) { Write(serializer, writer, value, settings, info, serializerData); }
public void WriteComplexContent(ComplexContentAttribute attribute, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData) { TkDebug.ThrowToolkitException("Json不支持ComplexContent节点", this); }
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); }
public void WriteAttribute(SimpleAttributeAttribute attribute, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData) { SetValue(writer, info, info.LocalName, value, settings); }
public void EndWrite(object writer, object receiver, WriteSettings settings) { JsonTextWriter jsonWriter = writer.Convert <JsonTextWriter>(); jsonWriter.Flush(); }
public void WriteComplexElement(SimpleComplexElementAttribute attribute, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData) { WriteElement(attribute, writer, value, settings, info, serializerData); }
public void WriteDynamicDictionary(DynamicDictionaryAttribute attribute, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData) { throw new NotSupportedException(); }
public void WriteTextContent(TextContentAttribute attribute, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData) { SetValue(writer, info, ObjectInfo.CONTENT_NAME, value, settings); }
public void WriteObject(object writer, object receiver, string modelName, WriteSettings settings, QName root, object serializerData) { throw new NotImplementedException(); }
public void WriteObject(object writer, object receiver, string modelName, WriteSettings settings, QName root, object serializerData) { WriteAObject(writer, receiver, modelName, settings); }
public void WriteDictionary(object writer, IDictionary receiver, BaseDictionaryAttribute attribute, string modelName, WriteSettings settings, QName root, object serializerData) { throw new NotImplementedException(); }
public void EndWrite(object writer, object receiver, WriteSettings settings) { }
public void EndWrite(object writer, object receiver, WriteSettings settings) { throw new NotImplementedException(); }
public string ConvertToString(object value, WriteSettings settings) { return(fConverter.ConvertToString(value)); }
protected override void Write(IObjectSerializer serializer, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData) { serializer.WriteElement(this, writer, value, settings, info, serializerData); }
public void WriteAttribute(SimpleAttributeAttribute attribute, object writer, object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData) { WriteSimpleElement(attribute, writer, value, settings, info, attribute.UseSourceType); }