# Map Suite SaveState and LoadState

**URL:** <https://community.thinkgeo.com/t/map-suite-savestate-and-loadstate/8747>\
**Category:** WPF\
**Created:** [November 23, 2017, 6:08am UTC](https://community.thinkgeo.com/t/map-suite-savestate-and-loadstate/8747 "2017-11-23T06:08:58Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Zhangming](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/z/b19c9b/32.png) [@Zhangming](https://community.thinkgeo.com/u/Zhangming)\
**Post date:** [November 23, 2017, 6:08am UTC](https://community.thinkgeo.com/t/map-suite-savestate-and-loadstate/8747/1 "2017-11-23T06:08:58Z")

</div>

Hi @Ethan  
I use a map control to load a shape map file, I use the map control method SaveState and LoadState.  
code:

 ![](https://community.thinkgeo.com/uploads/default/original/3X/7/b/7b22d853c4c31cd92a3c59a3ddad3eccb2e442a0.png)  
private byte mapState;  
private void save\_Click(object sender, RoutedEventArgs e)  
{  
mapState = MapControl.SaveState();  
}

```
    private void load_Click(object sender, RoutedEventArgs e)
    {
        if(mapState != null)
        {
              MapControl.LoadState(mapState);
        }
    }

 The saved state can be successful, but there is an empty reference error when loading.

```

regards,  
ZhangMing.

---

<div class="post-metadata">

**Author:** ![Ethan](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/ethan/32/19964_2.png) [@Ethan](https://community.thinkgeo.com/u/Ethan)\
**Post date:** [November 24, 2017, 7:04am UTC](https://community.thinkgeo.com/t/map-suite-savestate-and-loadstate/8747/2 "2017-11-24T07:04:10Z")

</div>

Hi ZhangMing,

I think the API SaveState and SaveState should have some problem, our developer will look into it.

Please try this workaround for now:

byte[] mapState;

```
    private void button_Click(object sender, RoutedEventArgs e)
    {
        GeoSerializer serializer = new GeoSerializer();

        MemoryStream stream = new MemoryStream();
        serializer.Serialize(map, stream);            
        mapState = stream.ToArray();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        GeoSerializer serializer = new GeoSerializer();

        MemoryStream stream = new MemoryStream(mapState);            

        WpfMap map = serializer.Deserialize(stream) as WpfMap;            
    }

```

Regards,

Ethan

---

<div class="post-metadata">

**Author:** ![Zhangming](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/z/b19c9b/32.png) [@Zhangming](https://community.thinkgeo.com/u/Zhangming)\
**Post date:** [November 28, 2017, 9:09am UTC](https://community.thinkgeo.com/t/map-suite-savestate-and-loadstate/8747/3 "2017-11-28T09:09:00Z")

</div>

Hi @Ethan  
thanks. i will try.  
Regards,  
ZhangMing

---

<div class="post-metadata">

**Author:** ![Ethan](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/ethan/32/19964_2.png) [@Ethan](https://community.thinkgeo.com/u/Ethan)\
**Post date:** [November 29, 2017, 2:38am UTC](https://community.thinkgeo.com/t/map-suite-savestate-and-loadstate/8747/4 "2017-11-29T02:38:39Z")

</div>

Hi ZhangMing,

Any question please let us know.

Regards,

Ethan
