pp7 Application Settings가 나를 한참 동안 괴롭혔다

1707 단어
나는 같은namespace에 하나의 구조체와 하나의 클래스를 썼는데 이 클래스에 이 구조체의 대상이 존재한다. 예를 들어 다음과 같다.
namespace Test
{
    struct CalendarInfo
    {
        public DateTime LastDate;
        public int MemberCount;
        public bool IsFetival ;
    }

    public partial class MemberPerformancePage : PhoneApplicationPage
    {
	private CalendarInfo m_CanlendarInfo;
    }
}
그리고 저는 MemberPerformancePage에서 사용하고 싶어요.
  IsolatedStorageSettings.ApplicationSettings로 m 구현CanlendarInfo의 스토리지예:
	public void SaveCanlendarInfo()
	{
		IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
		settings.Add(CanlendarKey, m_CanlendarInfo);
	}
매번
다시
저장된 데이터를 읽을 때, 항상null로 되돌아옵니다.setting을 추가하면Save()에 대한 작업을 수행하면 컴파일러가 Security Exception을 묻는 메시지를 표시합니다.setting이 없습니다.Save () 의 경우 프로그램이 데이터를 저장하는 데 실패하더라도 아무런 프롬프트도 하지 않습니다.
인터넷 자료가 비교적 적지만 나중에 알 수 있듯이 Application Settings에 저장된kv 대상은 반드시 서열화되어야 한다. 바로 백엔드 프로그램이 데이터를 어떻게 포장하는지 알고 어떻게 해제하는지 알고 있기 때문이다.
처음에 나는 이것이 요구에 부합된다고 생각했는데, 줄곧 저장이 실패한 원인을 찾아내지 못했다.가끔 구조체의 정의 속성에 public을 추가합니다. 예를 들어,
    public struct CalendarInfo
    {
        public DateTime LastDate;
        public int MemberCount;
        public bool IsFetival ;
    }
실행 후 데이터를 다시 읽는 데 성공했다.나는 원래 저장이 실패한 원인이 바로 저장할 대상을 서열화하지 못하는 것임을 문득 깨달았다.백그라운드 프로그램이 접근 제한 대상 유형에 접근하지 못하면 자연히 대상과 저장 데이터를 서열화할 수 없다.그래서 공공 속성을 추가한 후에 이 대상이 어떤 유형인지 알게 되었고 내부에 신마동서가 있으면 문제가 자연히 해결된다.
나는 이렇게 이해했다. 또 무슨 편차가 있는지 모르겠다.한참 동안 돌아다녔는데...어찌 견딜 수 있겠는가?

좋은 웹페이지 즐겨찾기