//--------------------------------------------------------------------- public Dictionary <string, string> getMapProp4NetSync(byte current_nodetype, byte to_nodetype) { if (mMapProp.Count == 0) { return(null); } Dictionary <string, string> map_ret = new Dictionary <string, string>(); FieldInfo[] list_fieldinfo = GetType().GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (var fi in list_fieldinfo) { if (!fi.FieldType.BaseType.Equals(typeof(IProp))) { continue; } Attribute[] attrs = System.Attribute.GetCustomAttributes(fi); foreach (Attribute attr in attrs) { if (!(attr is PropAttrDistribution)) { continue; } PropAttrDistribution a = (PropAttrDistribution)attr; if (a.NodePrimary == current_nodetype && a.NodeDistribution != null) { foreach (var i in a.NodeDistribution) { if (i == to_nodetype) { IProp p = (IProp)fi.GetValue(this); map_ret[p.getKey()] = EbTool.jsonSerialize(p.getValue()); break; } } } break; } } return(map_ret); }
//----------------------------------------------------------------------------- public override void copyValueFrom(IProp other_prop) { T value = (T)other_prop.getValue(); set(value); }