Thank you for the response, but these techniques do not appear to solve my problem.
If I create an item of type BaseClass, then my object will not recognize the properties I'm trying add in the DerivedClass.
Also, I understand the premise in creating a custom entity property, and understand the process. However I have other scenarios that necessitate temporarily extending an entity with custom properties, and do not want to pollute the base entity with this information.
Furthermore, the deserialization syntax you listed will create the same problem that I stated above--since the item is an InventoryEntity, it does not contain the custom temporary properties that I need.
I will probably adjust fire and make it a has-a relationship instead of an is-a relationship. This will require me to create properties to mirror the base level properties (such as Customer.FirstName, etc), and this seems redundant to me. I really want to be able to say "give me an entity (and its complete graph), and add this on to it for the now". This could be useful in my project for ranked lists, mail merging, and form binding purposes.
Please recall from my previous message that the ReadXml functionality works for me, but is far too slow to be practical. If there were a way to "ReadBinary" on an entity class, this may solve the problem because I could create a new DerivedClass and load the data from the BaseClass in the constructor. Is this impossible to create?