I currently have customer RadFilter settings saved in a database. How can I upgrade this data to be compatible with the latest release?
7 Answers, 1 is accepted
Before version Q3 2010, RadFilter used the ObjectStateFormatter for serialization and deserialization of filter expressions. The biggest caveat to this approach was that the ObjectStateFormatter did not support deserialization of object data serialized from another assembly version. Starting with Q3 2010, RadFilter now supports a second type of serialization - through the BinaryFormatter. The BinaryFormatter has the AssemblyFormat=FormatAssemblyStyle.Simple property set, meaning it can deserialize object data from a previous assembly version. Obviously, the BinaryFormatter provides greater flexibility, but comes at a cost too - it doesn't work in a medium trust environment.
Because the version of RadFilter (Q1 2010) you used when you serialized your settings data did not support the BinaryFormatter, you cannot deserialize this state with the latest version of the controls. The serialized data in your database is meaningful to the ObjectStateFormatter only, but the latter will fail to deserialize it with a version of RadControls different than the one you used when serializing.
the Telerik team
I also have the same issue , earlier I used the Q3 2010 version , now I have upgraded to 2011.3.1115.35 version. Now the binary value stored in the DB, while executing throw an error "The input stream is not a valid binary format". How to avoid this error and store the correct values to the database.
Thanks in advance
As noted by my collegue, all versions of RadFilter prior to Q3 2010 use the ObjectStateFormatter by default. Due to the nature of this formatter, it is not possible to deserialize settings, saved with different version of the assembly.
In other words, you cannot deserialize these settings using a newer dll version but once you save new settings using the BinaryFormatter, you will not encounter this problem again.
the Telerik team
Hi Telerik team,
Do you have any solution where we can show the previously saved state from the database which was saved using older version of telerik radfilter? previously I used Telerik version '2010.1.415' and after the upgrade we used Telerik version '2019.1.215.45'. i know it is nor possible to show the previously saved state because of ObjectStateFormatter deserialization issue and binary formatter not working in medium trust.
I just need a solution as it is developed by your team, you must have found out some solution to deal with this issue. Please let me know what should I do now?
Yes, as mentioned, I am afraid the old state and the new formatter are not supported. You will need to re-save these states with the new mode.
If this will too much work, you can open a formal support ticket and send us a very basic web site sample demonstrating some old saved state and the error with the current version.
Thank you for the response.
Just wanted to confirm that i if will re-save the those states with the new mode then it will work as usual or not ? because I tried but it was not successful. May be I am doing some mistakes. But is it possible if I will re-save it will save a new state and functionality will work as it is?
Thanks and Regards,
If you save the state with the new standard, and load those settings - they should work.
The following demo demonstrates this functionality: Save/Load RadFilter expressions.
Are you able to replicate the issue you mentioned with the new standard in it?