//创建节点 public static Node CreateNodeInstance(NodeDataJson node) { if (string.IsNullOrEmpty(node.TypeFullName)) { return(null); } Node rootNode = LCReflect.CreateInstanceByType <Node>(node.TypeFullName); rootNode.Init(node.NodeId, node.Type, node.ChildMaxCnt); if (node.Premise != null) { NodePremise premise = LCReflect.CreateInstanceByType <NodePremise>(node.Premise.TypeFullName); premise.Init(rootNode.GetHashCode(), node.Premise.Type, node.Premise.TrueValue); if (node.Premise.OtherPremise != null) { CreateNodePremise(rootNode.GetHashCode(), premise, node.Premise.OtherPremise); } rootNode.SetPremise(premise); } //属性设置 for (int i = 0; i < node.KeyValues.Count; i++) { NodeKeyValue keyValue = node.KeyValues[i]; object value = LCConvert.StrChangeToObject(keyValue.Value, keyValue.TypeFullName); LCReflect.SetTypeFieldValue(rootNode, keyValue.KeyName, value); } return(rootNode); }
private void UpdateNodeKeyValue(FieldInfo info, object defauleValue) { for (int i = 0; i < Json.KeyValues.Count; i++) { if (Json.KeyValues[i].KeyName == info.Name) { return; } } NodeKeyValue view = new NodeKeyValue(info.Name, info.FieldType.FullName, defauleValue.ToString()); Json.KeyValues.Add(view); }
private void DrawEditorNodeKeyValue() { EDLayout.CreateScrollView(ref valuePos, "", mRect.width, mRect.height, ((width, height) => { //可编辑键值 for (int j = 0; j < Json.KeyValues.Count; j++) { NodeKeyValue keyValue = Json.KeyValues[j]; object value = LCConvert.StrChangeToObject(keyValue.Value, keyValue.TypeFullName); Type ty = LCReflect.GetType(keyValue.TypeFullName); EDTypeField.CreateTypeField(keyValue.KeyName + "= ", ref value, ty, width - 10, 20); keyValue.Value = value.ToString(); } })); }