2016-09-09 1 views
2

그래서 나는 여기 Catel '시작하기'예제를 통해 해결하려고 노력 해요 :문제 - /에서 디스크에 직렬화 데이터

https://catelproject.atlassian.net/wiki/display/CTL/Getting+started+with+WPF

을하지만 시각적 스튜디오에서 몇 가지 오류를 받고 있어요 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); 
     } 
    } 
} 

비주얼 스튜디오 후 2 오류 및 경고 발생 :

을 오류 CS0619 'SavableModelBase.Load (Stream, SerializationMode)'는 사용되지 않습니다. '를 사용하십시오.대신. 버전 5.0.0에서 이 제거됩니다. '

오류 CS0619 'SavableModelBase.Save (string, 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'이란 무엇이며 어떻게 구현합니까? 나는 명백한 것을 놓치고 있는가?

설정은 다음과 같습니다

  • 비주얼 스튜디오 2015 커뮤니티 (14.0.25425.01 업데이트 3)
  • 프로젝트 목표 4.5.2
  • 프로젝트 Catel
  • 사용하여 새> 온라인> WPF 응용 프로그램을 사용하여 초기화 .NET
  • NuGet :
    • Catel.Core 4.5.3
    • Catel.Extensio 어떤 도움이 많이 주시면 감사하겠습니다 2.14.0

ns.Controls 4.5.3

  • Catel.MVVM 4.5.3
  • Catel.Fody.

  • 답변

    0

    오류/경고에 지정된대로 과부하 사용

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

    글쎄, 그것은 쉽게, 많은 감사했다. – Asnivor