내 응용 프로그램에는 CycleManager라는 단일 클래스가 있습니다. 나는이Windows 응용 프로그램의 제어 흐름
public sealed class CycleManager
{
public static readonly CycleManager instance = new CycleManager();
public CycleManager()
{
//ReadFromIsolatedStorage();
}
public static CycleManager Instance
{
get
{
return instance;
}
}
}
같은이 목적을 위해 봉인 된 클래스를 만들었습니다 그리고 App.xaml.cs를 내가 갈 필요가 있는지 확인하기 위해 RootFrame_Navigating()를 사용했다
public App()
{
UnhandledException += Application_UnhandledException;
InitializeComponent();
InitializePhoneApplication();
RootFrame.Navigating += new NavigatingCancelEventHandler(RootFrame_Navigating); if (System.Diagnostics.Debugger.IsAttached)
{
Application.Current.Host.Settings.EnableFrameRateCounter = true;
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
}
}
다음과 같은 코드가 있습니다 메인 페이지 또는 로그인 페이지로 이동하십시오.
void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
{
//throw new NotImplementedException();
if (e.Uri.ToString().Contains("/RootPage.xaml") != true)
return;
CycleManager pCycMan = CycleManager.instance;
e.Cancel = true;
RootFrame.Dispatcher.BeginInvoke(delegate
{
if (pCycMan.GetPasswordEnabled())
RootFrame.Navigate(new Uri("/PasswordPage.xaml", UriKind.Relative));
else
RootFrame.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
});
}
가 나는 인스턴스가 RootFrame_Navigating()
그러나 디버깅 앱() constructor에 후 나에게 그 나타나서을 보였다 내부에서 호출 될 때 Cyclemanager의 인스턴스가 생성 될 것으로 예상했다받는 제어 흐름으로 이동 CycleManager 클래스를 만들고 CycleManager() 생성자 다음에 RootFrame_Navigating으로 이동합니다. !! !! 뭔가 잘못되었거나 잘못 이해 했습니까?
두 번째 것은 CycleManager pCycMan = CycleManager.instance;
을 실행하는 것입니다. CycleManager에서 다음 코드가 호출되는 것이 예상되지만 놀랍게도 isnt입니다. 그러면 싱글 톤 속성은 어떻게 관리됩니까? 또는 매번 새로운 obj가 생성됩니까?
public static CycleManager Instance
{
get
{
return instance;
}
}
Alfah
' CycleManager pCycMan = CycleManager.instance;'CycleManager.Instance'를 의미합니까? – abhinav