//创建节点 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 static void CreateNodePremise(int nodeId, NodePremise premise, NodePremiseJson premiseJson) { if (premiseJson == null) { return; } NodePremise otherPremise = LCReflect.CreateInstanceByType <NodePremise>(premiseJson.TypeFullName); otherPremise.Init(nodeId, premiseJson.Type); premise.AddOtherPrecondition(otherPremise); if (premiseJson.OtherPremise != null) { CreateNodePremise(nodeId, otherPremise, premiseJson.OtherPremise); } }
//添加前提 public void AddOtherPrecondition(NodePremise premise) { otherPremise = premise; }
/// <summary> /// 设置前提 /// </summary> public void SetPremise(NodePremise premise) { nodePremise = premise; }