Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7817503
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 2, 20262026-06-02T06:14:41+00:00 2026-06-02T06:14:41+00:00

I have this class [Serializable] public class myClass() : ISerializable { public int a;

  • 0

I have this class

[Serializable]
public class myClass() : ISerializable
{
    public int a;
    public int b;
    public int c;

    public void GetObjectData(SerializationInfo info, 
                              StreamingContext context)
        {
        // Some code
        }

    public myClass(SerializationInfo info, 
                   StreamingContext context)
        {
        // Some code
        }
}

I have hundreds of these object in my database. I am now ready to publish a new version of my app where the class has morphed to

[Serializable]
public class myClass() : ISerializable
{
    public int a;
    public string b;
    public int c;
    public bool d;

    public void GetObjectData(SerializationInfo info, 
                              StreamingContext context)
        {
        // Some code
        }

    public myClass(SerializationInfo info, 
                   StreamingContext context)
        {
        // Some code
        }
}

How would one deserialize an object serialized based on the first version with the de-serialization constructor of the second.

Are there also strategies for future version proofing my second version of the class?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-02T06:14:43+00:00Added an answer on June 2, 2026 at 6:14 am

    Without preparation on your part, you may need to resort to a hack: when your public myClass deserialization constructor gets the value of bool d, enclose the code in try/catch, and set d to its default value when you catch an exception.

    In the future, add an int value "__ver" (or any other name that does not collide with arguments that you pass to info.AddValue), and set it to a constant that you maintain in your class to indicate compatible and incompatible changes in serialization:

    public class myClass : ISerializable {
        private const int __ver = 4;
        public int a;
        public string b;
        public int c;
        public bool d;
    
        public void GetObjectData(SerializationInfo info, 
                              StreamingContext context) {
            info.AddValue("__ver", ver);
            info.AddValue("a", a);
            // and so on
        }
    
        public myClass(SerializationInfo info, 
                   StreamingContext context) {
            switch(info.GetInt32("__ver")) {
                case 3: 
                    // Deserialize prior version
                break;
                case 4: 
                    // Deserialize current version
                break;
            }
        }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Let's suppose I have this object: [Serializable] public class MyClass { public int Age
I have this class public class wordObject implements java.io.Serializable { String wordName; int occCount;
I have this class: public MyClass { public void initialize(Collection<String> data) { this.data =
OK, if I have a class like this ... [serializable] public class MyClass() :
let's say i have a class: [Serializable] public sealed class MyFoo { public int
Given a class like this one: [Serializable] public class MyClass { string name; string
I have class @Embeddable public class MyClass implements Serializable { private String field1; private
I have an Class with property [Serializable] public class MyClass { public MyClass ()
I have a probleme with Postsharp. i have this: [Serializable] public class MethodConnectionTracking: OnExceptionAspect
I have this interface: public interface IDbTable extends Serializable { public int getId(); }

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.