2017-08-18 7 views
0
[Serializable] 
class GameObject : PictureBox 
{ 
    public bool Solid; 
    public bool Selected; 
} 

BackColorSizeLocationなどをシリアル化する方法は...ありますか?シリアライズする方法/デシリアライズのPictureBox

+2

まず:どのように文字列にオブジェクトを逆シリアル化

MyStructure myObject = GetPictureBoxObject(); string pbSerializedString = Serialize<MyStructure>(myObject); 

:オブジェクトツー文字列をシリアライズする方法

public static string Serialize<T>(T objectToSerialize) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); StringWriter textWriter = new StringWriter(); xmlSerializer.Serialize(textWriter, objectToSerialize); return textWriter.ToString(); } public static T Deserialize<T>(string stringToDeserialize) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); StringReader textReader = new StringReader(stringToDeserialize); return (T)xmlSerializer.Deserialize(textReader); } 

。次に、あなたはゲームを正しく作っているようですか?次に、ゲームオブジェクトにピクチャボックスを使用しないでください。 GameObjectを通常のクラスとして実装し、GDI +を使用してキャンバス上に描画するshow()関数を与えます。このクラスは、私はこれはXYの問題で、私はそれをBackColorプロパティ、場所、およびサイズ – Curunir

+0

@Curunirになります。ゲームオブジェクトの状態を保存したいのですが、ゲームオブジェクトがPictureBoxから継承されるため、PictureBoxの状態も保存する必要があります。あなたがやっていることをやめてやり直してください。 PictureBoxから継承しないでください。 –

+1

を保存したいピクチャを保存したくない、シリアライズ – CodeCaster

答えて

0

一時的な小さなタイプのオブジェクトの場合は、構造を使用することをお勧めしますが、必要に応じてクラスを使用できます。これらのヘルパーメソッドを使用して、オブジェクトをシリアライズおよびデシリアライズできます。あなたは、ピクチャをシリアル化することはできませんまったくの

string str = GetStringToDeserialize(); 
MyStructure myObject = Deserialize<MyStructure>(str); 
関連する問題