public void OnComponentRemoved(object obj) { ObjectIDmap map = null; ClassInstancePointer cr = obj as ClassInstancePointer; if (cr != null) { map = _loader.ObjectMap.GetMap(cr.ObjectInstance); } else { map = _loader.ObjectMap.GetMap(obj); } if (map != null) { TreeNode node = null; if (cr != null) { node = _objExplorer.LocateNode(cr); } else { IObjectPointer o = DesignUtil.CreateObjectPointer(map, obj); node = _objExplorer.LocateNode(o); } if (node != null) { node.Remove(); } } }
public void OnWriteToXmlNode(IXmlCodeWriter writer0, XmlNode node) { XmlObjectWriter writer = (XmlObjectWriter)writer0; UInt32 methodClassId = _method.Owner.RootPointer.ClassId; XmlUtil.SetAttribute(node, XmlTags.XMLATT_MethodID, MemberId); if (methodClassId != writer.ObjectList.ClassId) { XmlUtil.SetAttribute(node, XmlTags.XMLATT_ownerClassID, methodClassId); } //_holder:LocalVariable -- inside a methd:MemberId = variable id //_holder:ClassPointer -- on the top level //_holder:ClassInstancePointer -- member of the parent level, identified by MemberId LocalVariable var = Holder as LocalVariable; if (var != null) { XmlUtil.SetAttribute(node, XmlTags.XMLATT_varId, Holder.MemberId); } else { ClassInstancePointer cp = _holder as ClassInstancePointer; if (cp != null) { XmlNode nd = XmlUtil.CreateSingleNewElement(node, XmlTags.XML_ClassInstance); cp.OnPostSerialize(writer.ObjectList, nd, true, writer); } else { MemberComponentIdCustomInstance mcci = this.Holder as MemberComponentIdCustomInstance; if (mcci != null) { XmlUtil.SetAttribute(node, XmlTags.XMLATT_instanceId, mcci.Pointer.MemberId); cp = (ClassInstancePointer)(mcci.Owner); XmlNode nd = XmlUtil.CreateSingleNewElement(node, XmlTags.XML_ClassInstance); cp.OnPostSerialize(writer.ObjectList, nd, true, writer); } else { MemberComponentIdCustom mcc = this.Holder as MemberComponentIdCustom; if (mcc != null) { XmlUtil.SetAttribute(node, XmlTags.XMLATT_instanceId, mcc.Pointer.MemberId); } else { } } } } }
public override void OnPostSerialize(ObjectIDmap objMap, XmlNode objectNode, bool saved, object serializer) { if (saved) { } else { if (MemberId == objMap.MemberId) { ClassPointer = objMap.GetTypedData <ClassPointer>(); } else { ClassInstancePointer cr = DesignUtil.GetClassRef(WholeId, objMap); if (cr != null) { ClassPointer = cr; } else { object v = objMap.GetObjectByID(MemberId); if (v == null) { if (objMap.Count == 0) { } else { if (MemberId == 3667767822) { //it is the HtmlElement_body } else { //this time the object may not be available. } } } else { MemberComponentId mc = MemberComponentId.CreateMemberComponentId(objMap.GetTypedData <ClassPointer>(), v, MemberId, null); ClassPointer = mc; } } } } }
public void OnComponentRemoved(object obj) { ObjectIDmap map = null; ClassInstancePointer cr = obj as ClassInstancePointer; if (cr != null) { map = _loader.ObjectMap.GetMap(cr.ObjectInstance); } else { map = _loader.ObjectMap.GetMap(obj); if (map == null) { IComponent ic = obj as IComponent; if (ic != null && ic.Site != null) { object key = _loader.ObjectMap.GetObjectByName(ic.Site.Name); if (key != null) { obj = key; map = _loader.ObjectMap; } } } } if (map != null) { TreeNode node = null; if (cr != null) { node = _objExplorer.LocateNode(cr); } else { IObjectPointer o = DesignUtil.CreateObjectPointer(map, obj); node = _objExplorer.LocateNode(o); } if (node != null) { node.Remove(); } } }
public virtual void OnWriteToXmlNode(IXmlCodeWriter writer0, XmlNode node) { XmlObjectWriter writer = writer0 as XmlObjectWriter; if (writer == null) { throw new DesignerException("Error writing CustomPropertyPointer. writer0 is not a XmlObjectWriter"); } if (writer.ObjectList == null) { throw new DesignerException("Error writing CustomPropertyPointer. writer0 does not contain object map"); } if (node == null) { throw new DesignerException("Error writing CustomPropertyPointer. Target XmlNode is null."); } XmlUtil.SetAttribute(node, XmlTags.XMLATT_PropId, MemberId); if (ClassId != writer.ObjectList.ClassId) { XmlUtil.SetAttribute(node, XmlTags.XMLATT_ownerClassID, ClassId); } LocalVariable var = _holder as LocalVariable; if (var != null) { XmlUtil.SetAttribute(node, XmlTags.XMLATT_varId, _holder.MemberId); } else { ClassInstancePointer cp = _holder as ClassInstancePointer; if (cp != null) { XmlNode nd = XmlUtil.CreateSingleNewElement(node, XmlTags.XML_ClassInstance); cp.OnPostSerialize(writer.ObjectList, nd, true, writer); } } }
/// <summary> /// called from the holding class /// </summary> /// <param name="reader"></param> /// <param name="node"></param> public void OnReadFromXmlNode(IXmlCodeReader reader0, XmlNode node) { XmlObjectReader reader = (XmlObjectReader)reader0; _xmlNode = node; //retrieve _holder, _method //method id UInt32 memberId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_MethodID); MemberId = memberId; //method id // UInt32 varId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_varId); if (varId == 0) { //try backward compatible varId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ComponentID); if (varId != 0) { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); LocalVariable lv = root0.GetLocalVariable(varId); if (lv == null) { varId = 0; } else { _holder = lv; ClassId = lv.ClassType.DefinitionClassId; ClassPointer r = reader.ObjectList.Project.GetTypedData <ClassPointer>(ClassId); _method = r.GetCustomMethodById(memberId); } } } if (varId != 0) { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); LocalVariable lv = root0.GetLocalVariable(varId); _holder = lv; ClassId = lv.ClassType.DefinitionClassId; ClassPointer r = reader.ObjectList.Project.GetTypedData <ClassPointer>(ClassId); _method = r.GetCustomMethodById(memberId); } else { XmlNode nd = node.SelectSingleNode(XmlTags.XML_ClassInstance); if (nd != null) { ClassInstancePointer cp = new ClassInstancePointer(); cp.OnPostSerialize(reader.ObjectList, nd, false, reader); if (cp.Definition == null) { cp.ReplaceDeclaringClassPointer(ClassPointer.CreateClassPointer(cp.DefinitionClassId, reader.ObjectList.Project)); } _method = cp.Definition.GetCustomMethodById(memberId); _holder = cp; ClassId = cp.DefinitionClassId; } else { UInt32 cid = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ownerClassID); if (cid != 0) { ClassPointer root0 = ClassPointer.CreateClassPointer(cid, reader.ObjectList.Project); varId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_instanceId); if (varId != 0) { ClassPointer root = reader.ObjectList.GetTypedData <ClassPointer>(); _holder = new ClassInstancePointer(root, root0, varId); ClassId = root.ClassId; } else { _holder = root0; ClassId = root0.ClassId; } _method = root0.GetCustomMethodById(memberId); } else { if (XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ClassID) == 0) { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); _holder = root0; ClassId = root0.ClassId; _method = root0.GetCustomMethodById(memberId); } } } } if (_method == null) { //===backward compatibility======================================== UInt32 classId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ClassID); ClassId = classId; UInt32 instId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_instanceId); if (instId != 0) { if (classId != 0 && classId != reader.ObjectList.ClassId) { //it is a static instance from another class //for a custom class the holder is a MemberComponentIdCustom //for a library class the holder is a ClassPointer cp0 = ClassPointer.CreateClassPointer(classId, reader.ObjectList.Project); if (cp0 == null) { _error = string.Format(System.Globalization.CultureInfo.InvariantCulture, "Class {0} not found in the project", classId); } else { if (cp0.ObjectList.Count == 0) { //cp0 not loaded. load it now cp0.ObjectList.LoadObjects(); if (cp0.ObjectList.Reader.HasErrors) { MathNode.Log(cp0.ObjectList.Reader.Errors); cp0.ObjectList.Reader.ResetErrors(); } } IClassRef ic = cp0.ObjectList.GetClassRefById(instId); if (ic == null) { _error = string.Format(System.Globalization.CultureInfo.InvariantCulture, "Instance {0} not found in Class {1}", instId, classId); } else { ClassInstancePointer vi = ic as ClassInstancePointer; if (vi == null) { _error = string.Format(System.Globalization.CultureInfo.InvariantCulture, "Instance {0},{1} in Class {2} is not a class-instance-pointer", instId, ic.GetType(), classId); } else { MemberComponentIdCustom mc = new MemberComponentIdCustom(cp0, vi, instId); _holder = mc; _method = vi.Definition.GetCustomMethodById(memberId); } } } } else { XmlNode nd = node.SelectSingleNode(XmlTags.XML_ClassInstance); if (nd != null) { ClassInstancePointer cp = new ClassInstancePointer(); cp.OnPostSerialize(reader.ObjectList, nd, false, reader); ClassInstancePointer vi = (ClassInstancePointer)cp.Definition.ObjectList.GetClassRefById(instId); MemberComponentIdCustomInstance mcci = new MemberComponentIdCustomInstance(cp, vi, instId); _holder = mcci; _method = vi.Definition.GetCustomMethodById(memberId); ClassId = vi.ClassId; } else { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); ClassInstancePointer cp = (ClassInstancePointer)reader.ObjectList.GetClassRefById(instId); if (cp != null) { MemberComponentIdCustom mcc = new MemberComponentIdCustom(root0, cp, instId); _holder = mcc; _method = cp.Definition.GetCustomMethodById(memberId); ClassId = cp.ClassId; } else { //try to fix the error foreach (object o in reader.ObjectList.Keys) { cp = reader.ObjectList.GetClassRefByObject(o) as ClassInstancePointer; if (cp != null) { _method = cp.Definition.GetCustomMethodById(memberId); if (_method != null) { instId = reader.ObjectList.GetObjectID(o); _holder = new MemberComponentIdCustom(root0, cp, instId); ClassId = cp.ClassId; //fix the instance id XmlUtil.SetAttribute(node, XmlTags.XMLATT_instanceId, instId); break; } } } if (_holder == null) { _error = string.Format(System.Globalization.CultureInfo.InvariantCulture, "Component {0} is not a customer class instance in class {1}", instId, root0.ClassId); } } } } } else { if (classId == 0) { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); _holder = root0; _method = root0.GetCustomMethodById(memberId); } else { ClassPointer root0 = ClassPointer.CreateClassPointer(classId, reader.ObjectList.Project); if (root0 != null) { _holder = root0; _method = root0.GetCustomMethodById(memberId); } if (_method == null) { //backward compatibility UInt32 holderMemberId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ComponentID); ClassPointer root = reader.ObjectList.GetTypedData <ClassPointer>(); UInt32 holderClassId = XmlUtil.GetAttributeUInt(node.OwnerDocument.DocumentElement, XmlTags.XMLATT_ClassID); if (holderClassId == classId) //holder is in the same class { _method = root.GetCustomMethodById(memberId); if (holderMemberId == 0 || holderMemberId == reader.ObjectList.MemberId) //not an instance { _holder = root; } else { _holder = (IClass)reader.ObjectList.GetClassRefById(holderMemberId); } if (_holder == null) { _error = string.Format(System.Globalization.CultureInfo.InvariantCulture, "Invalid method holder Id [{0},{1}] for method [{2}.{3}]", classId, holderMemberId, _method.Owner, _method.Name); } } else //holder and declarer are different classes { ClassPointer declarer = ClassPointer.CreateClassPointer(classId, reader.ObjectList.Project); _method = declarer.GetCustomMethodById(memberId); if (_method == null) { _error = string.Format(System.Globalization.CultureInfo.InvariantCulture, "Method [{0}] not found in class [{1}]", memberId, classId); } else { //holder an instance? object v = reader.ObjectList.GetObjectByID(holderMemberId); if (v != null) { if (v == reader.ObjectList.GetRootObject()) { _holder = reader.ObjectList.GetTypedData <ClassPointer>(); } else { _holder = reader.ObjectList.GetClassRefByObject(v) as IClass; } } if (_holder == null) { //holder is a local variable LocalVariable lv = root.GetLocalVariable(holderMemberId); _holder = lv; } if (_holder == null) { _error = string.Format(System.Globalization.CultureInfo.InvariantCulture, "Invalid method holder Id [{0},{1}] for method [{2}.{3}] from declaring class {4}", holderClassId, holderMemberId, _method.Owner, _method.Name, classId); } } } } } } } }
/// <summary> /// called from the holding class /// </summary> /// <param name="reader"></param> /// <param name="node"></param> public void OnReadFromXmlNode(IXmlCodeReader reader0, XmlNode node) { XmlObjectReader reader = (XmlObjectReader)reader0; //retrieve _holder, _event UInt32 memberId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_EventId); //declaring event id MemberId = memberId; // UInt32 varId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_varId); if (varId != 0) { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); LocalVariable lv = root0.GetLocalVariable(varId); _holder = lv; ClassId = lv.ClassType.DefinitionClassId; ClassPointer r = reader.ObjectList.Project.GetTypedData <ClassPointer>(ClassId); _event = r.GetCustomEventById(memberId); } else { XmlNode nd = node.SelectSingleNode(XmlTags.XML_ClassInstance); if (nd != null) { ClassInstancePointer cp = new ClassInstancePointer(); cp.OnPostSerialize(reader.ObjectList, nd, false, reader); _event = cp.Definition.GetCustomEventById(memberId); _holder = cp; ClassId = cp.DefinitionClassId; } else { UInt32 cid = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ownerClassID); if (cid != 0) { ClassPointer root0 = ClassPointer.CreateClassPointer(cid, reader.ObjectList.Project); _holder = root0; ClassId = root0.ClassId; _event = root0.GetCustomEventById(memberId); } else { if (XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ClassID) == 0) { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); _holder = root0; ClassId = root0.ClassId; _event = root0.GetCustomEventById(memberId); } } } } if (_event == null) { //===backward compatibility================================================== UInt32 instId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_instanceId); if (instId != 0) { XmlNode nd = node.SelectSingleNode(XmlTags.XML_ClassInstance); if (nd != null) { ClassInstancePointer cp = new ClassInstancePointer(); cp.OnPostSerialize(reader.ObjectList, nd, false, reader); ClassInstancePointer vi = (ClassInstancePointer)cp.Definition.ObjectList.GetClassRefById(instId); MemberComponentIdCustomInstance mcci = new MemberComponentIdCustomInstance(cp, vi, instId); _holder = mcci; _event = vi.Definition.GetCustomEventById(memberId); ClassId = vi.ClassId; } else { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); ClassInstancePointer cp = (ClassInstancePointer)reader.ObjectList.GetClassRefById(instId); MemberComponentIdCustom mcc = new MemberComponentIdCustom(root0, cp, instId); _holder = mcc; _event = cp.Definition.GetCustomEventById(memberId); ClassId = cp.ClassId; } } else { if (XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ClassID) == 0) { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); _holder = root0; ClassId = root0.ClassId; _holder = root0; _event = root0.GetCustomEventById(memberId); } else { //backward compatibility UInt32 classId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ClassID); //declaring class id UInt32 holderMemberId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ComponentID); //holding class member id ClassId = classId; MemberId = memberId; UInt32 holderClassId = XmlUtil.GetAttributeUInt(node.OwnerDocument.DocumentElement, XmlTags.XMLATT_ClassID); ClassPointer root = reader.ObjectList.Project.GetTypedData <ClassPointer>(holderClassId); if (holderClassId == classId) //holder is in the same class { _event = root.GetCustomEventById(memberId); if (holderMemberId == 0 || holderMemberId == reader.ObjectList.MemberId) //not an instance { _holder = ClassPointer.CreateClassPointer(reader.ObjectList); } else { _holder = (IClass)reader.ObjectList.GetClassRefById(holderMemberId); } } else //holder and declarer are different classes { ClassPointer baseClass = root.GetBaseClass(classId); if (baseClass != null) { EventClass eb = baseClass.GetCustomEventById(memberId); if (eb == null) { throw new DesignerException("Error reading custom event pointer: invalid event Id [{0},{1}] in class [{2}]", classId, memberId, holderClassId); } _event = eb.CreateInherited(root); } else { ClassPointer declarer = ClassPointer.CreateClassPointer(classId, reader.ObjectList.Project); _event = declarer.GetCustomEventById(memberId); } //holder an instance? object v = reader.ObjectList.GetObjectByID(holderMemberId); if (v != null) { _holder = reader.ObjectList.GetClassRefByObject(v) as IClass; } if (_holder == null) { //holder is a local variable //ClassPointer root = reader.ObjectList.GetTypedData<ClassPointer>(); LocalVariable lv = root.GetLocalVariable(holderMemberId); _holder = lv; } } } } } if (_event == null) { throw new DesignerException("Error reading custom event pointer: [{0}]", node.InnerXml); } if (_holder == null) { throw new DesignerException("Invalid custom event pointer. Holder not found. [{0}]", node.InnerXml); } }
/// <summary> /// called from the holding class /// </summary> /// <param name="reader"></param> /// <param name="node"></param> public virtual void OnReadFromXmlNode(IXmlCodeReader reader0, XmlNode node) { XmlObjectReader reader = (XmlObjectReader)reader0; //retrieve _holder, _property UInt32 memberId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_PropId); //declaring property id MemberId = memberId; //id PropertyClass // UInt32 varId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_varId); if (varId != 0) { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); if (root0 == null) { root0 = reader.ObjectList.Project.GetTypedData <ClassPointer>(reader.ObjectList.ClassId); if (root0 == null) { root0 = reader.ObjectList.RootPointer as ClassPointer; if (root0 == null) { MathNode.Log(TraceLogClass.MainForm, new DesignerException("Error reading CustomPropertyPointer. Class Id = {0}. More info:{1}", reader.ObjectList.ClassId, getDebugInfo(reader0, node))); } } } if (root0 != null) { LocalVariable lv = root0.GetLocalVariable(varId); _holder = lv; if (lv.ClassType == null) { MathNode.Log(TraceLogClass.MainForm, new DesignerException("Error reading CustomPropertyPointer. Local variable [{0}]'s data type is null. More info:{1}", lv, getDebugInfo(reader0, node))); } else { ClassId = lv.ClassType.DefinitionClassId; ClassPointer r = reader.ObjectList.Project.GetTypedData <ClassPointer>(ClassId); if (r == null) { MathNode.Log(TraceLogClass.MainForm, new DesignerException("Error reading CustomPropertyPointer. Class ID [{0}] of a local variable [{1}] does not point to a class. More info:{2}", ClassId, lv, getDebugInfo(reader0, node))); } else { _property = r.GetCustomPropertyById(memberId); } } } } else { XmlNode nd = node.SelectSingleNode(XmlTags.XML_ClassInstance); if (nd != null) { ClassInstancePointer cp = new ClassInstancePointer(); cp.OnPostSerialize(reader.ObjectList, nd, false, reader); if (cp.Definition == null && cp.DefinitionClassId == 0) { MathNode.Log(TraceLogClass.MainForm, new DesignerException("Error reading CustomPropertyPointer: Definition ID is 0. More info:{0}", getDebugInfo(reader0, node))); } else { if (cp.Definition == null) { MathNode.Log(TraceLogClass.MainForm, new DesignerException("Error reading CustomPropertyPointer: Definition class not found. Definition class ID = {0}. If the class was removed from the project then the places using the class should be modified. More info:{1}", cp.DefinitionClassId, getDebugInfo(reader0, node))); } else { _property = cp.Definition.GetCustomPropertyById(memberId); } _holder = cp; ClassId = cp.DefinitionClassId; } } else { UInt32 cid = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ownerClassID); if (cid != 0) { ClassPointer root0 = ClassPointer.CreateClassPointer(cid, reader.ObjectList.Project); _holder = root0; if (root0 == null) { MathNode.Log(TraceLogClass.MainForm, new DesignerException("Error reading CustomPropertyPointer. Owner class ID [{0}] does not point to a class. More info:{1}", cid, getDebugInfo(reader0, node))); } else { ClassId = root0.ClassId; _property = root0.GetCustomPropertyById(memberId); } } else { if (XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ClassID) == 0) { ClassPointer root0 = reader.ObjectList.GetTypedData <ClassPointer>(); _holder = root0; if (root0 == null) { root0 = reader.ObjectList.Project.GetTypedData <ClassPointer>(reader.ObjectList.ClassId); if (root0 == null) { root0 = reader.ObjectList.RootPointer as ClassPointer; if (root0 == null) { MathNode.Log(TraceLogClass.MainForm, new DesignerException("Error reading CustomPropertyPointer. Current class ID [{0}] does not point to a class. More info:{1}", reader.ObjectList.ClassId, getDebugInfo(reader0, node))); } } } if (root0 != null) { ClassId = root0.ClassId; _property = root0.GetCustomPropertyById(memberId); } } } } } if (_holder == null) { //==backward compatibility=========================================================== UInt32 classId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ClassID); //declaring class id UInt32 holderMemberId = XmlUtil.GetAttributeUInt(node, XmlTags.XMLATT_ComponentID); ClassId = classId; //definition class //root holding class ClassPointer root = reader.ObjectList.GetTypedData <ClassPointer>(); if (root == null) { root = reader.ObjectList.Project.GetTypedData <ClassPointer>(reader.ObjectList.ClassId); if (root == null) { root = reader.ObjectList.RootPointer as ClassPointer; if (root == null) { MathNode.Log(TraceLogClass.MainForm, new DesignerException("Error reading CustomPropertyPointer. Holding class, class ID [{0}], does not point to a class. More info:{1}", reader.ObjectList.ClassId, getDebugInfo(reader0, node))); } } } // UInt32 holderClassId = XmlUtil.GetAttributeUInt(node.OwnerDocument.DocumentElement, XmlTags.XMLATT_ClassID); if (holderClassId == classId) //holder is in the same class { // if (root != null) { _property = root.GetCustomPropertyById(MemberId); if (_property != null && _property.IsStatic) { _holder = root; } } } else //holder and declarer are different classes { //root is the holding class ClassPointer declarer = ClassPointer.CreateClassPointer(classId, reader.ObjectList.Project); if (declarer == null) { MathNode.Log(TraceLogClass.MainForm, new DesignerException("Error reading CustomPropertyPointer: classId {0} does not point to a class. If the class was removed from the class then please modify places using the class. More info:{1}", classId, getDebugInfo(reader0, node))); } else { _property = declarer.GetCustomPropertyById(memberId); if (_property != null && _property.IsStatic) { _holder = declarer; } } } if (_property != null && !_property.IsStatic) { if (holderMemberId == 0 || holderMemberId == reader.ObjectList.MemberId) //not an instance { _holder = root; } else { _holder = (IClass)reader.ObjectList.GetClassRefById(holderMemberId); } if (_holder == null) { //holder is a local variable LocalVariable lv = root.GetLocalVariable(holderMemberId); _holder = lv; } _property.SetHolder(_holder); } } if (_holder == null) { MathNode.Log(TraceLogClass.MainForm, new DesignerException("Invalid property pointer [{0}]. More info:{1}", node.InnerXml, getDebugInfo(reader0, node))); } }
public ClassMemberField(CodeMemberField member, ClassInstancePointer classRef) { _memberField = member; _classRef = classRef; }