public void Update(string fullname, NameValueCollection parms) { XpcaProxy proxy = new XpcaProxy(srv[fullname]); foreach (string name in parms.AllKeys) { if (proxy.Properties.ContainsKey(name)) { Type type = proxy.Properties[name].PropertyType; object val = parms[name]; // Get node by ref if (typeof(Node).IsAssignableFrom(type)) { val = srv[val.ToString().Replace("xpca:/","")]; } else { try { val = type.InvokeMember("Parse", BindingFlags.Static | BindingFlags.InvokeMethod | BindingFlags.Public, null, type, new object[] {val}); } catch { val = val.ToString(); } } proxy[name] = val; } } proxy.ConfigChange -= NodeConfig; OnConfig(proxy.Node); }
public override string Serialize(Node node, Type typeAttr) { XpcaProxy proxy = new XpcaProxy(node); StringWriter sw = new StringWriter(); using(XmlWriter xmlWriter = new XmlTextWriter(sw)) { xmlWriter.WriteProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\""); xmlWriter.WriteStartElement("root"); foreach (KeyValuePair<string, PropertyInfo> property in proxy.GetPropertiesFor(typeAttr)) { object value = proxy[property.Key]; if (value != null) { xmlWriter.WriteStartElement(property.Key); if(value is IEnumerable<object>) { foreach (object obj in (value as IEnumerable<object>)) { xmlWriter.WriteStartElement("item"); XmlWriteValue(xmlWriter, obj); xmlWriter.WriteEndElement(); } } else { XmlWriteValue(xmlWriter, value); } xmlWriter.WriteEndElement(); } } xmlWriter.WriteEndElement(); } return sw.ToString(); }
public void SetUp() { node = new FlagsNode(); proxy = new XpcaProxy(node); proxy.ConfigChange += new EventHandler<ChangeEventArgs>(OnConfig); }
public override string Serialize(Node node, Type typeAttr) { XpcaProxy proxy = new XpcaProxy(node); StringWriter sw = new StringWriter(); using(JsonWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.Formatting = Newtonsoft.Json.Formatting.None; jsonWriter.WriteStartObject(); foreach (KeyValuePair<string, PropertyInfo> property in proxy.GetPropertiesFor(typeAttr)) { object value = proxy[property.Key]; if (value != null) { jsonWriter.WritePropertyName(property.Key); if(value is IEnumerable<object>) { jsonWriter.WriteStartArray(); foreach (object obj in (value as IEnumerable<object>)) { JsonWriteValue(jsonWriter, obj); } jsonWriter.WriteEndArray(); } else { JsonWriteValue(jsonWriter, value); } } } jsonWriter.WriteEndObject(); } return sw.ToString(); }
private void OnConfig(object sender, ChangeEventArgs e) { XpcaProxy proxy = sender as XpcaProxy; FlagsNode node = proxy.Node as FlagsNode; node.isConfiged = true; }
public void SetUp() { node = new FlagsNode(); proxy = new XpcaProxy(node); proxy.ConfigChange += new EventHandler <ChangeEventArgs>(OnConfig); }
protected void UpdateNode(Node node, Dictionary<string, object> properties) { proxy = new XpcaProxy(node); //Set properties foreach (KeyValuePair<string, object> property in properties) { object value = property.Value; if (value.ToString().IndexOf("xpca:/") > -1) { value = proxy.Node.Root[value.ToString().Replace("xpca:/", "")]; } proxy[property.Key] = value; } }
protected void UpdateNode(Node node, Dictionary <string, object> properties) { proxy = new XpcaProxy(node); //Set properties foreach (KeyValuePair <string, object> property in properties) { object value = property.Value; if (value.ToString().IndexOf("xpca:/") > -1) { value = proxy.Node.Root[value.ToString().Replace("xpca:/", "")]; } proxy[property.Key] = value; } }
public override string Serialize(Node node, Type typeAttr) { XpcaProxy proxy = new XpcaProxy(node); StringWriter sw = new StringWriter(); using (JsonWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.Formatting = Newtonsoft.Json.Formatting.None; jsonWriter.WriteStartObject(); foreach (KeyValuePair <string, PropertyInfo> property in proxy.GetPropertiesFor(typeAttr)) { object value = proxy[property.Key]; if (value != null) { jsonWriter.WritePropertyName(property.Key); if (value is IEnumerable <object> ) { jsonWriter.WriteStartArray(); foreach (object obj in (value as IEnumerable <object>)) { JsonWriteValue(jsonWriter, obj); } jsonWriter.WriteEndArray(); } else { JsonWriteValue(jsonWriter, value); } } } jsonWriter.WriteEndObject(); } return(sw.ToString()); }
public void Update(string fullname, NameValueCollection parms) { XpcaProxy proxy = new XpcaProxy(srv[fullname]); foreach (string name in parms.AllKeys) { if (proxy.Properties.ContainsKey(name)) { Type type = proxy.Properties[name].PropertyType; object val = parms[name]; // Get node by ref if (typeof(Node).IsAssignableFrom(type)) { val = srv[val.ToString().Replace("xpca:/", "")]; } else { try { val = type.InvokeMember("Parse", BindingFlags.Static | BindingFlags.InvokeMethod | BindingFlags.Public, null, type, new object[] { val }); } catch { val = val.ToString(); } } proxy[name] = val; } } proxy.ConfigChange -= NodeConfig; OnConfig(proxy.Node); }
public override string Serialize(Node node, Type typeAttr) { XpcaProxy proxy = new XpcaProxy(node); StringWriter sw = new StringWriter(); using (XmlWriter xmlWriter = new XmlTextWriter(sw)) { xmlWriter.WriteProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\""); xmlWriter.WriteStartElement("root"); foreach (KeyValuePair <string, PropertyInfo> property in proxy.GetPropertiesFor(typeAttr)) { object value = proxy[property.Key]; if (value != null) { xmlWriter.WriteStartElement(property.Key); if (value is IEnumerable <object> ) { foreach (object obj in (value as IEnumerable <object>)) { xmlWriter.WriteStartElement("item"); XmlWriteValue(xmlWriter, obj); xmlWriter.WriteEndElement(); } } else { XmlWriteValue(xmlWriter, value); } xmlWriter.WriteEndElement(); } } xmlWriter.WriteEndElement(); } return(sw.ToString()); }
private void Save(Node node, JsonTextWriter jsonWriter) { jsonWriter.Formatting = Formatting.Indented; jsonWriter.WritePropertyName(node.FullName); jsonWriter.WriteStartObject(); XpcaProxy proxy = new XpcaProxy(node); foreach (KeyValuePair<string, PropertyInfo> property in proxy.GetPropertiesFor(typeof(ConfigAttribute))) { object value = proxy[property.Key]; if (value != null ) { jsonWriter.WritePropertyName(property.Key); if(value is Node) { jsonWriter.WriteValue("xpca:/" + ((Node)value).FullName); } else { jsonWriter.WriteValue(value.ToString()); } } } jsonWriter.WriteEndObject(); foreach(Node ch in node.Children) { Save(ch, jsonWriter); } }