2016-09-09 8 views
2

からシリアル化データは、だから私はここにCatel「入門」例を挙げて動作するようにしようとしていますステップ3(データのディスクへのシリアライズ) - https://catelproject.atlassian.net/wiki/pages/viewpage.action?pageId=15630363問題/ディスクへ

「設定」という名前の「トップコンテナ」モデルと、「グローバル」という名前の「子クラス」を作成します(このチュートリアルとほぼ同じですが、少ないプロパティと異なるモデル名のため)。

私は一例に基づいてインターフェイスを作成します。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using App.Models; 

namespace App.Services.Interfaces 
{ 
    public interface IGlobalService 
    { 
     IEnumerable<Global> LoadGlobals(); 
     void SaveGlobals(IEnumerable<Global> globals); 
    } 
} 

それから私は、サービスの実装を作成します。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.IO; 
using Catel.Collections; 
using Catel.Data; 
using App.Models; 
using App.Services.Interfaces; 

namespace App.Services 
{ 
    public class GlobalService : IGlobalService 
    { 
     private readonly string _path; 

     public GlobalService() 
     { 
      string directory = Catel.IO.Path.GetApplicationDataDirectory("CatenaLogic", "WPF.GettingStarted"); 

      _path = Path.Combine(directory, "global.xml"); 
     } 

     public IEnumerable<Global> LoadGlobals() 
     { 
      if (!File.Exists(_path)) 
      { 
       return new Global[] { }; 
      } 

      using (var fileStream = File.Open(_path, FileMode.Open)) 
      { 
       var settings = Settings.Load(fileStream, SerializationMode.Xml); 
       return settings.Globals; 
      } 
     } 

     public void SaveGlobals(IEnumerable<Global> globals) 
     { 
      var settings = new Settings(); 
      settings.Globals.ReplaceRange(globals); 
      settings.Save(_path, SerializationMode.Xml); 
     } 
    } 
} 

Visual Studioは、その後、2つのエラーや警告をスローしますエラーCS0619 'SavableModelBase.Load(Stream、 SerializationMode)'は廃止されました: 'を使用してください代わりに。バージョン 5.0.0で削除された '

エラーCS0619 'SavableModelBase.Save(文字列、 SerializationMode)'は廃止されました: '代わりにSave(string, SerializationMode, ISerializationConfiguration)を使用してください。バージョン5.0.0では が削除されます。 '

警告CS0618 'CollectionExtensions.ReplaceRange(ObservableCollection、ObservableCollection、ObservableCollection、 IEnumerable)'は廃止されました: 'ReplaceRange(this ICollection<T>, IEnumerable<T>)を代わりに使用してください。バージョン5.0.0以降のエラー として処理されます。バージョン5.0.0で削除されます。

これまで私が行ったすべての研究は空白になっています。 'ISerializationConfiguration'とは何ですか?どのように実装しますか?私は明白な何かを欠いていますか

セットアップは次のとおりです。

  • のVisual Studio 2015コミュニティ(14.0.25425.01アップデート3)
  • プロジェクトのターゲット.NET 4.5.2
  • プロジェクトがCatel
  • を使用して[新規作成]> [オンライン> WPFアプリケーションを使用して初期化
  • NuGet:
    • Catel.Core 4.5.3
    • Catel.Extensio ns.Controls 4.5.3
    • Catel.MVVM 4.5.3
    • Catel.Fody 2.14.0

任意の助けもいただければ幸いです。エラー/警告で指定され

答えて

0

がオーバーロードを使用します。

Load(stream, null); 
Save(stream, null); 
+0

まあ、それは簡単で、多くのおかげでした。 – Asnivor

関連する問題