private void WriteItems(ISerialiserNode dictNode, IDictionary items) { using (var itemsNode = ownerDocument.CreateElement("items", dictNode)) { itemsNode.AddAttribute("count", items.Count); foreach (DictionaryEntry item in items) { objectWriter.Write(item.Key, itemsNode, item.Key.GetType()); objectWriter.Write(item.Value, itemsNode, item.Value.GetType()); } } }
public void Write_BuiltsXmlNodesAndAddsObjectToCache_IfAnArray() { var parentNode = NewMock <INodeWriter>(); var arrayNode = CreateXmlNode("array"); var itemsNode = CreateXmlNode("items"); object value = new[] { 1, 3 }; StubTypeMapper(); Expect.Once.On(valueCache).Method("Add").With(value).Will(Return.Value(23)); Expect.Once.On(ownerDocument).Method("CreateArrayElement").With(value.GetType().ToString(), 23, parentNode). Will( Return.Value(arrayNode)); Expect.Once.On(ownerDocument).Method("CreateItemsElement").With(arrayNode).Will(Return.Value(itemsNode)); Expect.Once.On(itemsNode).Method("Dispose").WithNoArguments(); Expect.Once.On(arrayNode).Method("Dispose").WithNoArguments(); Expect.Once.On(objectWriter).Method("Write").With(1, itemsNode, typeof(Int32)); Expect.Once.On(objectWriter).Method("Write").With(3, itemsNode, typeof(Int32)); writer.Write(value, parentNode, value.GetType()); }
public void Write_BuiltsXmlNode() { var parentNode = NewMock <INodeWriter>(); var enumNode = CreateXmlNode("null"); Expect.Once.On(ownerDocument).Method("CreateNullValueElement").With(parentNode).Will(Return.Value(enumNode)); Expect.Once.On(enumNode).Method("Dispose").WithNoArguments(); writer.Write(null, parentNode, parentNode.GetType()); }
private void WriteItems(INodeWriter listNode, IList items) { using (var itemsNode = ownerDocument.CreateItemsElement(listNode)) { itemsNode.AddAttribute("count", items.Count); foreach (var item in items) { objectWriter.Write(item, itemsNode, item.GetType()); } } }
public void Write_BuiltsXmlNode_WithntegerValue() { var parentNode = NewMock <INodeWriter>(); var valueNode = CreateXmlNode("primitive"); Expect.Once.On(ownerDocument).Method("CreateElement").With("primitive", parentNode).Will( Return.Value(valueNode)); Expect.Once.On(valueNode).Method("AddAttribute").With("type", "System.Int32"); Expect.Once.On(valueNode).SetProperty("InnerText").To("1"); Expect.Once.On(valueNode).Method("Dispose").WithNoArguments(); writer.Write(1, parentNode, parentNode.GetType()); }
public void Write_BuiltsXmlNode() { var parentNode = NewMock <INodeWriter>(); var referenceNode = CreateXmlNode("objref"); Expect.Once.On(document).Method("CreateObjectRefernceElement").With(parentNode).Will( Return.Value(referenceNode)); Expect.Once.On(valuesCache).Method("GetID").With(this).Will(Return.Value(7)); Expect.Once.On(referenceNode).Method("AddAttribute").With("ID", 7); Expect.Once.On(referenceNode).Method("Dispose").WithNoArguments(); writer.Write(this, parentNode, parentNode.GetType()); }
public void Write_BuiltsXmlNode() { var parentNode = NewMock <INodeWriter>(); var valueNode = CreateXmlNode("enum"); StubTypeMapper(); Expect.Once.On(ownerDocument).Method("CreateTypedElement").With("enum", EnumA.ValueB.GetType().ToString(), parentNode). Will(Return.Value(valueNode)); Expect.Once.On(valueNode).SetProperty("InnerText").To("ValueB"); Expect.Once.On(valueNode).Method("Dispose").WithNoArguments(); writer.Write(EnumA.ValueB, parentNode, parentNode.GetType()); }
public void Write(object owningObject, ISerialiserNode parentNode, MemberInfo memberInfo) { var fieldInfo = memberInfo as FieldInfo; if (fieldInfo != null) { var fieldValue = fieldInfo.GetValue(owningObject); using (var node = ownerDocument.CreateElement("f", parentNode)) { node.AddAttribute("name", fieldInfo.Name); var type = fieldValue == null ? new NullType() : fieldInfo.FieldType; objectWriter.Write(fieldValue, node, type); } } }
public void Write(object instance, INodeWriter parentNode, Type referencedAsType) { var valueID = valuesCache.Add(instance); var typeName = typeNamesCache.GetTypeName(instance.GetType()); using (var arrayNode = ownerDocument.CreateArrayElement( typeName, valueID, parentNode)) { using (var itemsNode = ownerDocument.CreateItemsElement(arrayNode)) { foreach (var listItem in (IEnumerable)instance) { var itemType = listItem == null?instance.GetType().GetElementType() : listItem.GetType(); objectWriter.Write(listItem, itemsNode, itemType); } } } }
public void Write(object instance, INodeWriter parentNode, Type referencedAsType) { objectWriter.Write(instance, parentNode, referencedAsType); }
void ICustomSerializable.Write(IObjectWriter writer) { Guard.NotNull(writer, "writer"); writer.Write(Location); writer.Write(Speeds.Count); foreach(var speed in Speeds) { writer.Write(speed.Key); writer.Write(speed.Value); } }