[英]Access Derived class properties from base class collection
我已經從基類創建了派生類,並將派生類對象添加到基類collection。稍后,當我嘗試將集合對象強制轉換為派生類時,它會引發錯誤,並且我無法獲取覆蓋方法和屬性。我該如何解決?
我試圖覆蓋wpf墨水畫布中的筆觸類。但是可用的集合是基礎墨水集合。因此,在序列化和脫鹽之后,無法訪問我添加的新屬性。請幫助
您的問題是StrokeCollection
實現了一個自定義的TypeConverter
,它使用StrokeCollection.Save()
方法以一種稱為墨水序列化格式 (ISF)的有效二進制格式對筆划數據進行了序列化 。 當您的筆划轉換為ISF時,所有額外的數據都將丟失,因此在重新加載它們時,它們將被實例化為普通的Stroke
對象(而不是您的子類)。 這就是為什么您不能將它們強制轉換為子類的原因。
您的一些選擇是:
StrokeCollection
並為子類實現新的TypeConverter
TypeConverter
序列化技術 StrokeCollection
(例如,通過將Strokes
復制到List<Stroke>
並對其進行序列化)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.