2015-07-07 3 views
1

Так что я использую protobuff.net для сериализации и десриализации данных в файл и из него. Проблема в том, что методы Desirialize и Serialize из protobuff берут поток в качестве аргумента. До сих пор я использовал System.IO.FileStream, но так как я портирую игру для работы в магазине Windows и телефоне Windows, мне нужно использовать Windows.Storage и Windows.Storage.Streams. Вопрос в том, как создать поток из файла в приложении Windows Phone.Как получить поток из окна телефона API

Это код для загрузки:

public static T LoadObjectFromPath<T>(string path) 
    { 
     if (!File.Exists(path)) 
     { 
      return default(T); 
     } 
     T deserializedObject = default(T); 
    #if !NETFX_CORE 
     using(FileStream f = new FileStream(path,FileMode.Open)) 
     { 
       deserializedObject = (T)m_serialiezer.Deserialize(f,null,typeof(T)); 
     } 
#else 
     //Write Windows store specific code here 
#endif 

И это для экономии:

public static void SaveObjectToPath<T>(string objectPath, string filename, T serializedObject) 
    { 
     if (!Directory.Exists(objectPath)) 
     { 
      Directory.CreateDirectory(objectPath); 
     } 
     if(!File.Exists(objectPath + filename)) 
     { 
      File.Create(objectPath + filename); 
     } 
#if !NETFX_CORE 
     using (FileStream f = new FileStream(objectPath + filename, FileMode.Truncate)) 
     { 

      m_serialiezer.Serialize(f, serializedObject); 
     } 
#else 

#endif 
    } 

ответ

Смежные вопросы