public static ActionClass createAction(IClass holder, IProperty ei, XmlObjectWriter writer, XmlNode node, IMethod scopeMethod, IActionsHolder actsHolder, Form caller) { if (ei != null) { IPropertyEx pp = ei as IPropertyEx; if (pp != null) { ActionClass act = new ActionClass(pp.RootPointer); act.ActionMethod = pp.CreateSetterMethodPointer(act); act.ActionName = act.ActionMethod.DefaultActionName; act.ActionHolder = actsHolder; if (pp.RootPointer.CreateNewAction(act, writer, scopeMethod, caller)) { return(act); } } else { PropertyClass pc = ei as PropertyClass; if (pc != null) { PropertyClass pc2 = (PropertyClass)pc.Clone(); pc2.SetHolder(holder); ActionClass act = new ActionClass(holder.RootPointer); act.ActionMethod = pc2.CreateSetterMethodPointer(act); act.ActionName = act.ActionMethod.DefaultActionName; // pc.Holder.CodeName + ".Set" + pc.Name; act.ActionHolder = actsHolder; if (holder.RootPointer.CreateNewAction(act, writer, scopeMethod, caller)) { return(act); } } else { } } } return(null); }