This week's book giveaway is in the Agile and other Processes forum. We're giving away four copies of The Mikado Method and have Ola Ellnestam and Daniel Brolund on-line! See this thread for details.
I think you want to be able to copy values of arbitrary number of properties from one class to another. That is possible through reflection. Look at this tutorial and try to create a program that suits your requirements...
Why do you keep two different classes to begin with? Have you considered using just one class that has a boolean (or whatever is appropriate) differentiator between books and magazines?