2017-03-07 187 views
-1

我只將一個數據序列化到MyFile.bin文件中,現在我必須將其反序列化爲一個字符串或Int,並將當前值加1並再次保存,爲此要如何將值反序列化爲Int或字符串變量?C#Binaryformatter反序列化爲字符串?

代碼

public void saveMember() 
{ 

    string pathMemberPk = Path.Combine(Environment.CurrentDirectory, @"../memberDataPk.bin"); 

    if (!File.Exists(pathMemberPk)) { 

    memberPk = 0001; 
    memberPkString = memberPk.ToString(); 

    IFormatter formatter = new BinaryFormatter(); 
    Stream streamPk = new FileStream(pathMemberPk, FileMode.Create); 
    formatter.Serialize(streamPk,this.memberPkString); 

    }else{ 

    using (FileStream streamIn = File.OpenRead("f://MyFile.bin")) 
    { 
     string pk; 
     BinaryFormatter formatter = new BinaryFormatter(); 
     string pkk = (pk)formatter.Deserialize(streamIn).ToString(); 
     } 

    } 
} 

回答

1

我解決我自己

public void saveMember() 
{ 

    string pathMemberPk = Path.Combine(Environment.CurrentDirectory, @"../memberDataPk.bin"); 

    if (!File.Exists(pathMemberPk)) { 

    memberPk = 0001; 
    memberPkString = memberPk.ToString(); 

    IFormatter formatter = new BinaryFormatter(); 
    Stream streamPk = new FileStream(pathMemberPk, FileMode.Create); 
    formatter.Serialize(streamPk,this.memberPkString); 

    }else{ 

    using (FileStream streamIn = File.OpenRead("f://MyFile.bin")) 
    { 
     IFormatter formatter = new BinaryFormatter();     
     object obj = formatter.Deserialize(streamIn); 
     memberPk = Convert.ToInt32(obj); //to INT 
     memberPk = Convert.ToString(obj); //To String 

     Console.WriteLine(memberPk); 
     } 

    } 
}