private XmlNode WriteAttribute(XmlNode parentNode, string nodeName, object nodeValue, WriteNodeValueKind writeKind) { if (parentNode == null) { throw new FireSpiderException("�ڵ�Ϊ�գ����������ԣ�"); } XmlNode attributeNode; if (writeKind == WriteNodeValueKind.NewNodeWrite) { attributeNode = media.CreateNode(nodeName, nodeValue); attributeNode = parentNode.Attributes.Append((XmlAttribute)attributeNode); } else { attributeNode = media.GetNode(parentNode, nodeName); if (attributeNode == null) { if (writeKind == WriteNodeValueKind.NotExistsError) { throw new NodeNotFoundException("���ҵ�����Ϊ" + nodeName + "��Xml�ڵ㡣"); } attributeNode = media.CreateNode(nodeName, nodeValue); attributeNode = parentNode.Attributes.Append((XmlAttribute)attributeNode); } } return attributeNode; }
private XmlNode WriteChildNode(XmlNode parentNode, string nodeName, object nodeValue, WriteNodeValueKind writeKind) { if (parentNode == null) { throw new FireSpiderException("���ڵ�Ϊ�գ��������ӽڵ㣡"); } if (nodeName == null) { return parentNode; } else { XmlNode valueNode; if (writeKind == WriteNodeValueKind.NewNodeWrite) { valueNode = media.CreateNode(nodeName, nodeValue); valueNode = parentNode.AppendChild((XmlNode)valueNode); } else { valueNode = media.GetNode(parentNode, nodeName); if (valueNode == null) { if (writeKind == WriteNodeValueKind.NotExistsError) { throw new NodeNotFoundException("���ҵ�����Ϊ" + nodeName + "��Xml�ڵ㡣"); } valueNode = media.CreateNode(nodeName, nodeValue); valueNode = parentNode.AppendChild((XmlNode)valueNode); } } return valueNode; } }
protected override void WriteValue(object parentNode, string nodeName, object nodeValue, WriteNodeValueKind writeKind) { XmlNode containerNode = WriteChildNode((XmlNode)parentNode, nodeName, nodeValue, writeKind); containerNode.RemoveAll(); XmlNode valueNode = document.CreateNode(XmlNodeType.Text, nodeName, null); valueNode = containerNode.AppendChild((XmlNode)valueNode); valueNode.Value = (string)nodeValue; }
protected abstract void WriteValue(object parentNode, string nodeName, object nodeValue, WriteNodeValueKind writeKind);
public override void WriteUInt64(object parentNode, string nodeName, ulong nodeValue, WriteNodeValueKind writeKind) { WriteValue(parentNode, nodeName, dataType.FromUInt64(nodeValue), writeKind); }
public override void WriteObject(object parentNode, string nodeName, object nodeValue, WriteNodeValueKind writeKind) { WriteValue(parentNode, nodeName, dataType.FromObject(nodeValue), writeKind); }
public override void WriteDouble(object parentNode, string nodeName, double nodeValue, WriteNodeValueKind writeKind) { WriteValue(parentNode, nodeName, dataType.FromDouble(nodeValue), writeKind); }
public override void WriteChar(object parentNode, string nodeName, char nodeValue, WriteNodeValueKind writeKind) { WriteValue(parentNode, nodeName, dataType.FromChar(nodeValue), writeKind); }
public abstract void WriteString(object parentNode, string nodeName, string nodeValue, WriteNodeValueKind writeKind);
public void WriteEnum(object parentNode, string nodeName, object value, WriteNodeValueKind writeKind) { WriteString(parentNode, nodeName, value.ToString(), writeKind); }
public abstract void WriteDecimal(object parentNode, string nodeName, decimal nodeValue, WriteNodeValueKind writeKind);
public abstract void WriteDateTime(object parentNode, string nodeName, DateTime nodeValue, WriteNodeValueKind writeKind);
public abstract void WriteBoolean(object parentNode, string nodeName, bool nodeValue, WriteNodeValueKind writeKind);
public abstract void WriteBinary(object parentNode, string nodeName, byte[] nodeValue, WriteNodeValueKind writeKind);
public override void WriteBinary(object parentNode, string nodeName, byte[] nodeValue, WriteNodeValueKind writeKind) { WriteValue(parentNode, nodeName, dataType.FromBinary(nodeValue, 0), writeKind); }
public override void WriteBoolean(object parentNode, string nodeName, bool nodeValue, WriteNodeValueKind writeKind) { WriteValue(parentNode, nodeName, dataType.FromBoolean(nodeValue), writeKind); }
public abstract void WriteUInt16(object parentNode, string nodeName, ushort nodeValue, WriteNodeValueKind writeKind);
public override void WriteDecimal(object parentNode, string nodeName, decimal nodeValue, WriteNodeValueKind writeKind) { WriteValue(parentNode, nodeName, dataType.FromDecimal(nodeValue), writeKind); }
public abstract void WriteUInt64(object parentNode, string nodeName, ulong nodeValue, WriteNodeValueKind writeKind);
public XmlNode WriteNode(XmlNode parentNode, string nodeName, WriteNodeValueKind writeKind) { return WriteChildNode(parentNode, nodeName, null, writeKind); }
public override void WriteGuid(object parentNode, string nodeName, Guid nodeValue, WriteNodeValueKind writeKind) { WriteValue(parentNode, nodeName, dataType.FromGuid(nodeValue), writeKind); }
public override void WriteInt16(object parentNode, string nodeName, short nodeValue, WriteNodeValueKind writeKind) { WriteValue(parentNode, nodeName, dataType.FromInt16(nodeValue), writeKind); }
protected override void WriteValue(object parentNode, string nodeName, object nodeValue, WriteNodeValueKind writeKind) { XmlNode valueNode = WriteAttribute((XmlNode)parentNode, nodeName, nodeValue, writeKind); valueNode.Value = (string)nodeValue; }