示例#1
0
        public void ReadComplexElement(SimpleComplexElementAttribute attribute, object reader,
                                       object receiver, ReadSettings settings, ObjectPropertyInfo info, object serializerData)
        {
            if (attribute.IsMultiple)
            {
                JsonTextReader jsonReader = reader.Convert <JsonTextReader>();
                IList          list       = attribute.GetList(receiver, info);
                AssertRead(jsonReader);
                AssertReadState(jsonReader, JsonToken.StartArray, info.PropertyName);
                while (jsonReader.Read())
                {
                    if (jsonReader.TokenType == JsonToken.EndArray)
                    {
                        break;
                    }

                    object value = ReadComplexValue(jsonReader, receiver, settings, info);
                    list.Add(value);
                }
            }
            else
            {
                ReadComplexValue(reader, receiver, settings, info);
            }
        }
示例#2
0
        public void ReadComplexElement(SimpleComplexElementAttribute attribute, object reader,
                                       object receiver, ReadSettings settings, ObjectPropertyInfo info, object serializerData)
        {
            XmlReader xml      = reader.Convert <XmlReader>();
            string    value    = ReadComplexContent(xml, info.QName);
            object    objValue = SerializerUtil.GetPropertyObject(receiver, settings, info, value, false);

            SerializerUtil.AddElementValue(attribute, receiver, info, objValue);
        }
示例#3
0
        public void WriteComplexElement(SimpleComplexElementAttribute attribute, object writer,
                                        object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
        {
            var      current  = serializerData.Convert <XElement>();
            string   xmlValue = ObjectUtil.ToString(info.Converter, value, settings);
            XElement child    = string.IsNullOrEmpty(xmlValue) ? null : XElement.Parse(xmlValue);
            XElement element  = new XElement(info.QName.ToXName(), child);

            current.Add(element);
        }
示例#4
0
        public void ReadComplexElement(SimpleComplexElementAttribute attribute, object reader,
                                       object receiver, ReadSettings settings, ObjectPropertyInfo info, object serializerData)
        {
            XElement current = XElementData.GetCurrent(reader);

            string value    = current.HasElements ? current.FirstNode.ToString() : null;
            object objValue = SerializerUtil.GetPropertyObject(receiver, settings, info, value, false);

            SerializerUtil.AddElementValue(attribute, receiver, info, objValue);
        }
示例#5
0
        public void WriteComplexElement(SimpleComplexElementAttribute 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);
            string data = ObjectUtil.ToString(info.Converter, value, settings);

            WriteComplexContent(xmlWriter, data);
            xmlWriter.WriteEndElement();
        }
示例#6
0
 public void WriteComplexElement(SimpleComplexElementAttribute attribute, object writer,
                                 object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     if (attribute.IsMultiple)
     {
         IList      list       = value.Convert <IList>();
         JsonWriter jsonWriter = writer.Convert <JsonWriter>();
         QName      name       = info.QName;
         jsonWriter.WritePropertyName(name.LocalName);
         jsonWriter.WriteStartArray();
         foreach (var itemValue in list)
         {
             WriteComplexContent(jsonWriter, itemValue.ConvertToString());
         }
         //jsonWriter.WriteValue(ObjectUtil.ToString(info, itemValue, settings));
         jsonWriter.WriteEndArray();
     }
     else
     {
         WriteComplexElement(attribute, writer, value, settings, info);
     }
 }
示例#7
0
 public void ReadComplexElement(SimpleComplexElementAttribute attribute, object reader,
                                object receiver, ReadSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     throw new NotSupportedException();
 }
示例#8
0
 public void WriteComplexElement(SimpleComplexElementAttribute attribute, object writer,
                                 object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     throw new NotImplementedException();
 }
 public void WriteComplexElement(SimpleComplexElementAttribute attribute, object writer,
                                 object value, WriteSettings settings, ObjectPropertyInfo info, object serializerData)
 {
     WriteElement(attribute, writer, value, settings, info, serializerData);
 }
示例#10
0
 public void ReadComplexElement(SimpleComplexElementAttribute attribute, object reader,
                                object receiver, ReadSettings settings, ObjectPropertyInfo info, object serializerData)
 {
 }