Hi, MapServer currently doesn`t support any other persitence representation than the mapfiles. There have been some initial plans related to an XML format in this list, but no one had any motivation to implement that. So I think the best what you can do at the moment is to use reflection to access the properties along with some other members of the objects and serialize the values manually.
Best regards, Tamas 2008/6/9 BrainDrain <[EMAIL PROTECTED]>: > > Is there any 'standart' fast(!) way/method to serialize (xml/json/other > markup) mapObj in C#? I need it for using server mapObj as JSON on rich > client app running on browser. Look at my method (using reflection): > > public static ListDictionary PartialSerialize(object instance, Stack > callerTypes, Type[] excludeTypes) > { > ListDictionary result = new ListDictionary(); > object val; > > callerTypes.Push(instance.GetType()); > PropertyInfo[] pis = instance.GetType().GetProperties(); > foreach (PropertyInfo pi in pis) > { > if (pi.PropertyType.IsSerializable && > !pi.PropertyType.IsArray) > result[pi.Name] = pi.GetValue(instance, new object[0]); > else > { > //preventing useless nesting > if (!callerTypes.Contains(pi.PropertyType) && > !((IList)excludeTypes).Contains(pi.PropertyType)) > { > val = pi.GetValue(instance, new object[0]); > if (val != null) > result[pi.Name] = PartialSerialize(val, > callerTypes, excludeTypes); > } > } > } > callerTypes.Pop(); > return result; > } > ... > So I can convert mapObj on serever to hashtable automatically an then > populate JSON object > (still need to call explicitly getLayer, getClass etc., but this is not a > problem): > ... > layers[i].Properties = Tools.PartialSerialize(layer, new Stack(), new > Type[3] { typeof(mapObj), typeof(hashTableObj), typeof(colorObj)}); > ... > classes[j].Properties = Tools.PartialSerialize(layerClass, new Stack(), new > Type[4] { typeof(layerObj), typeof(labelObj), typeof(hashTableObj), > typeof(colorObj)}); > ... > styles[k].Properties = Tools.PartialSerialize(classStyle, new Stack(), new > Type[2]{typeof(hashTableObj), typeof(colorObj)}); > ... > mapStub.Properties = Tools.PartialSerialize(map, new Stack(), new Type[11] { > typeof(labelObj), typeof(hashTableObj), typeof(fontSetObj), > typeof(labelCacheObj), typeof(outputFormatObj[]), typeof(queryMapObj), > typeof(referenceMapObj), typeof(scalebarObj), typeof(symbolSetObj), > typeof(colorObj), typeof(legendObj)}); > ... > JavaScriptSerializer class object allows to perform convertion to client > More often I use script method in my web service that can do it behind the > scenes. > > How do you do such kind of operation? > -- > View this message in context: > http://www.nabble.com/mapObject-serialization-in-C--%28variant%29-tp17739919p17739919.html > Sent from the Mapserver - User mailing list archive at Nabble.com. > > _______________________________________________ > mapserver-users mailing list > mapserver-users@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/mapserver-users > _______________________________________________ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users