第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# 對象序列化

C# 對象序列化

C#
繁華開滿天機 2023-08-20 10:08:45
如果無法將基類標記為可序列化,如何序列化 ac# 類。我在 c# wpf 應(yīng)用程序中使用 Caliburn Micro,MyViewModel 源自 Screen ( https://caliburnmicro.com/documentation/composition )。我需要在文件中序列化(Xml序列化器/BinarySerializer/DataContractSerializer)MyViewModel對象,以便稍后使用它。我可以將 MyViewModel 標記為 [Serializable],但出現(xiàn)異常,基類(來自 calibburn micro 的 Screen)未標記為 [Serializable],因此無法序列化對象。我無法在屏幕中添加屬性為 [Serializable],因為它是第三方庫。誰能建議我如何序列化 MyViewModel 對象?[Serializable]public class MyViewModel : Screen{  // Rest of functionalities}我收到異常:在程序集“Caliburn.Micro,Version=3.2.0.0,Culture=neutral,PublicKeyToken=1f2ed21f”中鍵入“Caliburn.Micro.Screen”未標記為可序列化。
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻1770條經(jīng)驗 獲得超3個贊

偽代碼: 序列化:

using (var stream = File.Open(filePath, FileMode.Create))

? ? ? ? ? ? {

? ? ? ? ? ? ? ? var writer = new DataContractSerializer(myViewModelObject.GetType());

? ? ? ? ? ? ? ? writer.WriteObject(stream, myViewModelObject);

? ? ? ? ? ? ? ? stream.Close();

? ? ? ? ? ? }

反序列化:


using (var fs = new FileStream(filePath, FileMode.Open))

? ? ? ? ? ? {

? ? ? ? ? ? ? ? var reader = XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas());

? ? ? ? ? ? ? ? var deserializer = new DataContractSerializer(MyViewModel);

? ? ? ? ? ? ? ? var deserializedType = deserializer.ReadObject(reader, true);

? ? ? ? ? ? ? ? reader.Close();

? ? ? ? ? ? ? ? fs.Close();

? ? ? ? ? ? ? ? return deserializedType;

? ? ? ? ? ? }


查看完整回答
反對 回復(fù) 2023-08-20
  • 1 回答
  • 0 關(guān)注
  • 138 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號