拋出異常時拋出:「System.ComponentModel.ReflectPropertyDescriptor沒有被標記爲可序列化」奇例外在.NET
這是否意味着我錯過了標記爲可序列化自己的東西,或者是這個東西超出了我的控制?
拋出異常時拋出:「System.ComponentModel.ReflectPropertyDescriptor沒有被標記爲可序列化」奇例外在.NET
這是否意味着我錯過了標記爲可序列化自己的東西,或者是這個東西超出了我的控制?
它是在你的控制。最有可能的問題是這樣的: http://www.codeplex.com/SharedCache/Thread/View.aspx?ThreadId=19759
你在班上有這種類型的領域嗎?如果是這樣,你將不得不自己實現ISerializable - 自動實現要求你所有的字段都被標記爲可序列化。
你可以給出更多的上下文以瞭解何時發生這種情況,以及哪些序列化器?大多數串行不得不忽略某些成員的能力 - ,NonSerializedAttribute
爲BinaryFormatter
,XmlIgnoreAttribute
爲XmlSerializer
等
有一個PropertyDescriptor
比如在你的類通常意味着你的類被作爲一個屬性袋;在這種情況下,您可能需要執行自定義序列化(ISerializable
/IXmlSerializable
)。如果該字段出於某種其他原因,請將其標記爲忽略。
當您有一個事件(例如更改通知事件/ INotifyPropertyChanged
)時,此UI(或類似症狀)也很常見(數據綁定);在這種情況下,您需要將後臺字段標記爲非序列化。我不知道VB,但與C#你可以做到這一點與「田間般的事件」,因爲如此:
[field: NonSerialized]
public event EventHandler BarChanged;
* facepalm *我的臉砸在屏幕上,想知道爲什麼[NonSerialized]不適合我的活動。缺少`字段:`。 – 2016-12-02 16:32:52
事實證明,這是一個Databinding問題。我能夠消除它。感謝您的幫助。 – 2008-10-08 14:11:58