How is the Type parameter used to locate ExtendedWeakReference data

Here is my situation-
My program is formatted to allow for in-field firmware updates and hence i use systemUpdate to access my Applicaton and ApplicationBootloader. I would like to share data between the Applicaton and the ApplicationBootloader, i do this by using the EWR with SurviveBoot and SurvivePowerdown parameters set.

Here is my problem-
All was working well until i did some re-factoring and created a new solution for my application, I had to recreate the selector class but in doing so i made sure that the namespace and class name were exactly the same as before. the Application bootloader image has not been modified at all.
Now the ApplicationBootloader cannot find the data saved by the (new) Application.

Here is my question-
how does EWR use the Type selector parameter to locate the data, is it based on fully qualified class name i.e. namespace + class name or is it something else. I cant understand why the (old) ApplicatonBootlaoder cannot find the data written by the (new)Application.
Fine i have recreated a new project and class for the selector but i made sure that namespace and class name were exactly the same as what the old Application was using.

Doing some further experimentation it seems that the data is indeed identified by the fully qualified class name, this works even in the case if the class is moved to another projects as long as the namespace for the class does not change.

Doing even more testing found that if you change the selector class by adding fields then the data will not be able to be found by the older reference to the same class (even though the fully qualified namespace is still the same)

can you able to post your code…

Regards YuvaRaja

EWR is one of these thing that I somewhat know how it works but verytime I look at it I feel lost.

The example Microsoft provides under documents is a good starting point.

If you add or remove any members your EWR will be marked as different and not survive. Make sure they are identical. You’ll lose the data first time you change but then t should persist. Also allow time for save to complete as its non-blocking. A sleep 100 should be enough.