No, you can't just cast one object to another unless one derives from the other. How is C# supposed to know that the classes are the same? You can however make the transition from Product to Product_Recovery by using the AutoMapper library, which makes this easier by the use of Reflection.
Check out the Project Page or Getting Started, and install from Nuget when you're ready to use it.
The simplest example of how to use would be (copied from Getting Started):
// execute this somewhere in your program construction
// only once to generate the required mappings
Mapper.Initialize(cfg => cfg.CreateMap<Product, Product_Recovery>());
// execute this to transform from one to another:
Product dto = Mapper.Map<Product_Recovery>(productInstance);
AutoMappermay not have been available then. Honestly not sure if the best practice is to leave or close in the case where the referenced question is dated