我有一個紙牌遊戲程序,到目前爲止,聊天在主機和客戶端之間的TCPClient流之間來回運行。我想通過序列化和反序列化來實現這一點,這樣我就可以在主機和客戶端之間傳遞卡片。我試圖爲卡的傳遞創建一個單獨的TCPClient流,但它不起作用,並且認爲保留一個獲取文本消息以及卡的TCPClient流可能更容易。所以我創建了一個名爲cereal的類,它具有卡的屬性,這將幫助我從另一端的嵌入式數據庫卡重建卡。有沒有一種方法可以讓我的程序計算出卡片是否已經放入流中,或者它只是流中的文本,因此我可以將它正確地反序列化爲字符串或麥片?或者我應該添加一個字符串屬性到我的穀類,當該屬性在反序列化到穀物後被填充時,我會知道它只是文本(如果該字段在反序列化後是空的,我將知道它是一張牌)?我想嘗試一下,試圖將其反序列化爲一個字符串,如果失敗了,它會捕獲並作爲穀物投射。或者我剛剛擺脫這個基地,應該選擇另一條路線?我正在使用visual studio 2011,我使用的是binaryformatter,而且是序列化/反序列化的新手。從流中反序列化多種類型
0
A
回答
0
結束了創建的容器類,這是可序列化。如果我將文本發送到其他計算機,則將容器的文本屬性設置爲文本所在的位置。然後當收到這個容器時,如果它有文本,接收計算機將顯示文本。如果收到的容器包含一張卡片,它將創建該卡片並根據收到的容器中找到的其他屬性將其放在需要的位置。如果是丟棄物,則根據容器中的其他屬性找到該卡,並將其丟棄至正確的堆。我還在容器中包含了一個作爲String屬性的命令,因此如果所有其他屬性都爲false,則會查看命令屬性是否包含字符串。如果是,則調用命令接收方法並找到正確的命令並執行代碼。迄今爲止效果很好。
1
這應該適合你。寄BaseMessage在導線,然後檢查其類型進來
命名空間ConsoleApplication3 { 類節目 { 靜態無效的主要(字符串[]參數) { BaseMessage BM =新CardMessage(); 如果(bm.GetType()== typeof運算(CardMessage)) { } } }
class BaseMessage : ISerializable
{
}
class ChatMessage : BaseMessage
{
}
class CardMessage : BaseMessage
{
}
}
相關問題
- 1. 反序列化多種類型與GSON
- 2. Xml反序列化 - 多種類型的序列
- 3. Json反序列化流返回類型
- 4. 反序列化JSON利用多種類型的在一個場
- 5. 如何反序列化JSON多種類型動態地在C#
- 6. .NET反序列化 - 返回多種類型
- 7. 使用JsonConverter來序列化/反序列化各種'筆刷'類型
- 8. 反序列化泛型(但可序列化)類型
- 9. 反序列化到反序列化類中的列表中?
- 10. 如何將XML快速反序列化爲一種類型?
- 11. 如何反序列化這種類型的XML文件?
- 12. C#反序列化JSON到各種類型
- 13. 如何實現Serializable接口,序列化/反序列化類/從機類型
- 14. 使用protobuf-net反序列化當前流位置的類型
- 15. 類型化JSON序列化/反序列化
- 16. 可以Json.NET序列化/反序列化到/從一個流?
- 17. 格式化多種類型的列
- 18. JSON.Net:反序列化多態類型而不指定程序集
- 19. 反序列化動態json類型
- 20. 反序列化一個通用類型
- 21. 反序列化JSON時確定類型
- 22. 反序列化派生類型
- 23. 反序列化JSON - 錯誤類型
- 24. DataContractSerializer的反序列化已知類型
- 25. Restsharp和反序列化派生類型
- 26. 反序列化未知類型
- 27. 類型反序列化對象
- 28. JSon反序列化獲取類型
- 29. 反序列化JSON.NET不知道類型
- 30. JSON.NET未知類型的反序列化