public override ServiceSkel CreateSkel(object obj) { string objtype = RobotRaconteurNode.GetTypeString(ServiceSkelUtil.FindParentInterface(obj.GetType())); string objshort; if (CompareNamespace(objtype, out objshort)) { switch (objshort) { case "baseobj": return(new baseobj_skel((baseobj)obj)); case "subobj": return(new subobj_skel((subobj)obj)); default: break; } } else { string ext_service_type = RobotRaconteurNode.SplitQualifiedName(objtype).Item1; return(RobotRaconteurNode.s.GetServiceFactory(ext_service_type).CreateSkel(obj)); } throw new ServiceException("Could not create skel"); }