Windows Store 응용 프로그램의 페이지간에 복잡한 개체를 전달할 때 가장 좋은 방법은 무엇입니까? MSDN에서는 개체의 기본 유형 만 세션 상태를 serialize하기 위해 전달 될 수 있다고 나와 있지만 응용 프로그램이 시작될 때 내 응용 프로그램이 로그 아웃하고 자격 증명의 로그를 요청할 것이므로 세션 상태를 serialize하지 않습니다. 다음 번에. 사용자가 로그 아웃하거나 버튼을 저장할 때 데이터를 직렬화 할 계획입니다.Windows Store 응용 프로그램에서 페이지간에 복잡한 개체를 전달하는 방법은 무엇입니까?
답변
Person 개체를 PersonDetailPage에 전달한다고 가정 해 보겠습니다. 다음은 MainPage (또는 다른 페이지)에 대한 내용입니다. 매개 변수가 전달 된 경우
this.Frame.Navigate(typeof(PersonDetailPage), (Person)e.ClickedItem);
가 그런 다음 LoadState에서의 PersonDetailPage,()에 당신이 verifiy 것이며, 그 매개 변수 atribute 변수 :
당신이의 GridView로 작업한다고 가정.
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
if (navigationParameter != null)
{
person = (Person)navigationParameter;
}
}
다른 유형의 객체를 전달하려면 어떻게해야합니까? 사람을 내 앱의 3 페이지까지 유지하여 그 페이지의 모든 데이터를 직렬화 할 수 있다고 가정 해 보겠습니다. 어떻게하면 될까요? – em007
사실 내 의견에 대한 답변을 찾았습니다. 게시 한 것을 사용하여 2 개의 객체가있는 튜플을 전달했습니다. "Ok"접근법처럼 보이지만 더 좋은 해결책이 있다면 나는 모두 귀입니다! 감사!! – em007
세션 상태를 serialize하지 않았기 때문에 위의 솔루션을 생각해 냈습니다. 나는 이것이 최선의 해결책이라고 생각하지 않지만 navigationParameter가 "Person"인지 "Dog"인지 확인할 수 있습니다. e.j : 'if (navigationParameter!= null) '{ } if (navigationParameter가 Person 인 경우) { 'person = (Person) navigationParameter; '} 'else if (navigationParameter is Dog) '{ 'dog = (Dog) navigationParameter; '} }} 나는 그것이 당신이 생각해 낼 수있는 최선의 해결책이라고 생각하지 않지만, 그것은 내가 오늘 마음에 가지고 있었던 것이었다. –
세션 상태를 serialize하지 않으면 사용자에게 최적의 환경이 제공되지 않을 수 있습니다. 사용자가 로그 아웃 할 때만 상태를 저장하면 응용 프로그램이 일시 중지되고 자원이 적어 OS에서 종료 될 때 상태가 해제됩니다.
the application lifecycle을보십시오. 사용자가 다른 응용 프로그램으로 전환하고 응용 프로그램이 더 이상 앞에 오지 않으면 일시 중지 될 것입니다. 이것이 상태를 저장하고 보존 할 수있는 마지막 기회입니다. 사용자가 다시 전환 할 때까지 애플리케이션을 메모리에 남겨 둘 수 있지만 리소스가 필요할 경우 OS가 시스템을 종료합니다. 이 경우 사용자는 다시 시작해야합니다. 응용 프로그램이 일시 중지되었을 때 상태를 저장하지 않으면 응용 프로그램이 느슨해지고 사용자 환경이 저하됩니다.
상태를 유지하는 사용자 지정 방법을 생각해 볼 수도 있지만 Windows 런타임에서 지원되는 페이지간에 기본 형식 만 전달하는 것이 좋습니다. 이 방법으로 대부분의 작업을 처리하는 응용 프로그램 템플릿에 포함 된 SuspensionManager을 활용할 수 있습니다. 페이지간에 기본 유형 만 전달하는 것은 그리 어렵지 않습니다. 객체 식별자 (일종의 고유 식별자) 만 전달하고 모든 페이지에서 액세스 할 수있는 객체를 다른 곳에 보관하는 것이 가장 좋습니다. 또는 객체를 직렬화하여 직렬화 된 문자열 (XML 또는 JSON)로 전달할 수 있습니다.
내가 개발중인 앱에는 사용자가 다른 앱으로 전환하거나 일시 중지하면 사용자가 앱에 다시 로그인해야하는 맞춤 로그인 페이지가 있습니다. 이것은 Windows 스토어 응용 프로그램에 들어 가지 않고 주로 사내 목적으로 사용됩니다. 내 객체는 사용자가 LocalFolder에 저장된 xml 파일을 deserialize하여 앱에 성공적으로 로그인 한 후에 만들어집니다. 귀하의 접근 방식을 이해하고 귀하의 개체 ID 접근 방식을 만들려고 노력할 것입니다, 훨씬 청소기 보인다! 팁 주셔서 감사! – em007
@ em007 귀하의 시나리오에서 나는 로그인 페이지를 먼저 표시하고 이후에 이전에 저장 한 상태로 되돌릴 수있는 유일한 차이점을 가지고 내가 설명한대로 표준 접근 방식을 시도하려고합니다. –
그러면 우리가보고되면 아마도 우리가 거기에서 몇 가지 방향을 빌려 수있는 지금까지이 그 어떤 코드를 제공 할 수있는 두 번째 페이지
- 1. Windows Phone에서 페이지간에 사진을 전달하는 방법은 무엇입니까?
- 2. XAML 페이지간에 값 (매개 변수)을 전달하는 방법은 무엇입니까?
- 3. 컨트롤러와 뷰 페이지간에 개체를 공유하는 방법은 무엇입니까?
- 4. 정상 링크가있는 페이지간에 데이터를 전달하는 방법은 무엇입니까?
- 5. Documents 폴더가 Windows Store 응용 프로그램에서 열리지 않는 이유는 무엇입니까?
- 6. WinRT/Windows Store 응용 프로그램에서 전자 메일을 보내려면 어떻게해야합니까?
- 7. WPF에서 페이지간에 데이터를 전달하는 방법
- 8. Silverlight : 페이지간에 복잡한 개체 전달
- 9. 개체를 단계별로 전달하는 방법은 무엇입니까?
- 10. 개체를 부분으로 전달하는 방법은 무엇입니까?
- 11. 개체를 대리인에게 전달하는 방법은 무엇입니까?
- 12. 개체를 다른 페이지로 전달하는 방법은 무엇입니까?
- 13. Windows Store 응용 프로그램에서 GetFileFromPathAsync의 경로를 추가하는 방법
- 14. REST에서 복잡한 쿼리를 전달하는 방법은 무엇입니까?
- 15. windows8 Store 응용 프로그램에서 XmlTextWriter를 사용하는 방법?
- 16. ASP.net에서 페이지간에 값이 아닌 개체를 전달하는 방법 C#?
- 17. Windows 응용 프로그램에서 MVC를 적용하는 방법은 무엇입니까?
- 18. Windows 응용 프로그램에서 문자를 입력하는 방법은 무엇입니까?
- 19. Windows Store 응용 프로그램에서 DMO COM 인터페이스가 지원됩니까?
- 20. 한 응용 프로그램에서 다른 응용 프로그램으로 Session을 전달하는 방법은 무엇입니까?
- 21. MVVM Store 응용 프로그램에서 휴대용 클래스 라이브러리
- 22. WP7 용 Silverlight 페이지간에 값을 전달하는 방법은 무엇입니까?
- 23. 액션 클래스와 JSP 페이지간에 객체 데이터를 전달하는 방법은 무엇입니까?
- 24. MFC 프로그램에서 다른 대화 상자간에 데이터를 전달하는 방법은 무엇입니까?
- 25. Windows Store 응용 프로그램 Facebook SDK 통합
- 26. 개체를 웹 서비스에 전달하는 방법은 무엇입니까?
- 27. PyThon 개체를 다른 클래스로 전달하는 방법은 무엇입니까?
- 28. Spreasheet gem에서 내보내기 개체를 전달하는 방법은 무엇입니까?
- 29. 클라이언트에서지도 및 축소로 개체를 전달하는 방법은 무엇입니까?
- 30. 개체를 로컬 개체 메서드에 전달하는 방법은 무엇입니까?
에서 문자열을 역 직렬화, 복잡한 객체를 직렬화 문자열로 전달할 수있는 당신의 논리적 생각 프로세스는 소스 코드의 관점에서 보입니다. – MethodMan