private void LoadData() { var type = fanuc.CurMacroBom.GetType(); foreach (PropertyInfo item in type.GetProperties()) { var attributes = item.GetCustomAttribute <DisplayAttribute>(); if (attributes != null && (attributes.GetAutoGenerateField() ?? true)) { var limit = item.GetValue(fanuc.CurMacroBom) as MacroBomItem; if (limit == null) { continue; } var node = new SystemMacroItemViewModel() { PropertyName = item.Name, Title = attributes.Name, Address = limit?.Adr ?? 0 }; node.ShowDialogEvent += Node_ShowDialogEvent; MacroNodes.Add(node); } } }
private void SaveConfig() { var type = fanuc.CurMacroBom.GetType(); foreach (PropertyInfo item in type.GetProperties()) { var limit = item.GetValue(fanuc.CurMacroBom) as MacroBomItem; if (limit == null) { limit = new MacroBomItem(); item.SetValue(fanuc.CurMacroBom, limit); } var prop = MacroNodes.FirstOrDefault(d => d.PropertyName == item.Name); if (prop != null) { limit.Adr = prop.Address; } } var jsonLimitBom = JsonConvert.SerializeObject(fanuc.CurMacroBom, Formatting.Indented); using (StreamWriter sw = new StreamWriter(@"macrobom.cfg", false)) { sw.Write(jsonLimitBom); } }