ThinkGeo.com    |     Documentation    |     Premium Support

Deserialize Overlays Error

Hi,


Following from the last post, I am now able to happily save overlays to file, but am now finding issues with loading that file using the deserialize code.


Please find attached project files same as before, but with a new button called Read from XML.  The error is always the same:


"Object reference not set to an instance of an object."


As before, you will need to put the countries02.shp files in the data directory and I was using libraries 5.5.63.0.


Thanks, we're getting there.


Damian



Damian, 
  
 Thanks for your project. 
  
 I have reproduced your problem, our developer will work for that tomorrow. 
  
 I will let you know if we have any progress about it. 
  
 Regards, 
  
 Don

Damian, 
  
 This problem caused by a field named RtreeSpatialIndex, which is NonSerialized. It only initialize when you open a layer. 
  
 So when you get a layer from XML, the IsOpen equal true but the RtreeSpatialIndex is null. 
  
 The solution is close each layer after you get your Overlays from XML. You can open them then or open some of them follow your requirement. 
  
 The code for your project should be: 
  
 LayerOverlay layerOverlay = overlay as LayerOverlay; 
 layerOverlay.Layers[0].Close(); 
 layerOverlay.Layers[0].Open(); 
  
 Regards, 
  
 Don

Hi Don, 
  
 This works now.  Thanks. 
  
 It has allowed me to get a bit further, but I’ve another problem now after reading back the files.  I will open a new post. 
  
 Regards, 
 Damian

Thanks Damian glad Don’s suggestion helped.  We will keep an eye out for your new post. 
  
 Thanks!