As far as I understand your question, you need to create a deep copy of info object
Here's a solution (using serialization)
Create extension method like this:
public static class ExtensionMethods
{
// Deep clone
public static T DeepClone<T>(this T a)
{
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, a);
stream.Position = 0;
return (T) formatter.Deserialize(stream);
}
}
}
Use it:
checkInfo = info.DeepClone();
P.S Usually, a need for a deep cloning means a need for code refactoring. Not necessarily, but quite often..I thing there should be a better solution in your case, than copying objects.