Reputation: 18020
I have created a derived class from a base class and have added the derived class objects to the base class collection.Later when i try to cast the collection objects to derived class,it is throwing error and i am not able to get my override methods and properties.How could i get around this.?
I am trying to override the stroke class in wpf inkcanvas.But the collection available is of base ink collection.So after serializing ans desalinizing,the new properties that i added is not accessible.Pls help
Upvotes: 0
Views: 503
Reputation: 62919
Your problem is that StrokeCollection
implements a custom TypeConverter
which serializes the stroke data in an efficient binary format called Ink Serialization Format (ISF) using the StrokeCollection.Save()
method. When your strokes are converted to ISF all the extra data is lost, so when they are reloaded they are instantiated as ordinary Stroke
objects (not your subclass). This is why you cannot cast them to your subclass.
Some of your options are:
StrokeCollection
and implement a new TypeConverter
for your subclassTypeConverter
StrokeCollection
(eg. by copying the Strokes
into a List<Stroke>
and serializing that)Upvotes: 2