Codemaru 1.0.0.0
QR 코드, 모바일 랜딩 페이지, vCard 연락처 저장과 명함 디자인을 한 화면에서 제공하는 디지털 명함 서비스입니다.
로딩중...
검색중...
일치하는것 없음
Codemaru.Views.MainWindow 클래스 참조

더 자세히 ...

Codemaru.Views.MainWindow에 대한 상속 다이어그램 :
Codemaru.Views.MainWindow에 대한 협력 다이어그램:

Public 멤버 함수

 MainWindow (DreamineBlazorServerHostOptions serverOptions)

Private 멤버 함수

async void OnLoaded (object sender, RoutedEventArgs e)

정적 Private 멤버 함수

static async Task NavigateServerAsync (WebView2 webView, string baseUrl, string expectedInstanceId, int timeoutMs=15000, int intervalMs=500)

Private 속성

readonly DreamineBlazorServerHostOptions _serverOptions

상세한 설명

Main Window 기능과 관련 상태를 캡슐화합니다.

MainWindow.xaml.cs 파일의 19 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ MainWindow()

Codemaru.Views.MainWindow.MainWindow ( DreamineBlazorServerHostOptions serverOptions)
inline

지정한 설정으로 MainWindow 클래스의 새 인스턴스를 초기화합니다.

매개변수
serverOptionsserver Options에 사용할 DreamineBlazorServerHostOptions 값입니다.
예외
ArgumentNullException필수 입력 인자 중 하나가 null인 경우 발생합니다.

MainWindow.xaml.cs 파일의 55 번째 라인에서 정의되었습니다.

56 {
57 _serverOptions = serverOptions ?? throw new ArgumentNullException(nameof(serverOptions));
58
59 InitializeComponent();
60
61 if (DesignerProperties.GetIsInDesignMode(this))
62 {
63 return;
64 }
65
66 Loaded += OnLoaded;
67 }

다음을 참조함 : _serverOptions, OnLoaded().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ NavigateServerAsync()

async Task Codemaru.Views.MainWindow.NavigateServerAsync ( WebView2 webView,
string baseUrl,
string expectedInstanceId,
int timeoutMs = 15000,
int intervalMs = 500 )
inlinestaticprivate

Navigate Server Async 작업을 수행합니다.

매개변수
webViewweb View에 사용할 WebView2 값입니다.
baseUrlbase Url에 사용할 string 값입니다.
expectedInstanceIdexpected Instance Id에 사용할 string 값입니다.
timeoutMstimeout Ms에 사용할 int 값입니다.
intervalMsinterval Ms에 사용할 int 값입니다.
반환값
Navigate Server Async 작업에서 생성한 Task 결과입니다.

MainWindow.xaml.cs 파일의 166 번째 라인에서 정의되었습니다.

168 {
169 var cardHybridUrl = $"{baseUrl}/cardhybrid";
170 var instanceUrl = $"{baseUrl}/_dreamine/instance";
171 try
172 {
173 await Task.Delay(1200);
174
175 using var cts = new CancellationTokenSource(timeoutMs);
176 using var http = new HttpClient();
177 var alive = false;
178
179 while (!cts.IsCancellationRequested)
180 {
181 try
182 {
183 var instanceId = await http.GetStringAsync(instanceUrl, cts.Token);
184 if (string.Equals(instanceId.Trim(), expectedInstanceId, StringComparison.Ordinal))
185 {
186 alive = true;
187 break;
188 }
189 }
190 catch (HttpRequestException)
191 {
192 }
193 catch (TaskCanceledException)
194 {
195 }
196
197 await Task.Delay(intervalMs, cts.Token);
198 }
199
200 if (!alive)
201 {
202 Debug.WriteLine($"[CardHybrid] Server instance mismatch or timeout: {baseUrl}");
203 await HybridWebViewHost.ShowOfflineMessageAsync(webView, cardHybridUrl);
204 return;
205 }
206
207 webView.Source = new Uri(cardHybridUrl);
208 }
209 catch (TaskCanceledException)
210 {
211 Debug.WriteLine("[CardHybrid] Server navigation canceled.");
212 }
213 catch (Exception ex)
214 {
215 Debug.WriteLine($"[CardHybrid] {ex}");
216 }
217 }

다음에 의해서 참조됨 : OnLoaded().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnLoaded()

async void Codemaru.Views.MainWindow.OnLoaded ( object sender,
RoutedEventArgs e )
inlineprivate

Loaded 이벤트 또는 상태 변경을 처리합니다.

매개변수
sender이벤트를 발생시킨 객체입니다.
e이벤트와 관련된 데이터를 포함합니다.

MainWindow.xaml.cs 파일의 93 번째 라인에서 정의되었습니다.

94 {
95 var hybrid = new HybridHostControl
96 {
97 HostPage = "wwwroot/index.html",
98 Services = App.ServiceProvider,
99 RootComponentType = typeof(Codemaru.Blazor.Pages.Index),
100 RootSelector = "#app"
101 };
102 EmbeddedTab.Content = hybrid;
103
104 var webView = HybridWebViewHost.CreateWebView();
105 ServerTab.Content = webView;
106
107 await NavigateServerAsync(webView, $"http://localhost:{_serverOptions.Port}", _serverOptions.InstanceId);
108 }

다음을 참조함 : _serverOptions, NavigateServerAsync(), Codemaru.App.ServiceProvider.

다음에 의해서 참조됨 : MainWindow().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _serverOptions

readonly DreamineBlazorServerHostOptions Codemaru.Views.MainWindow._serverOptions
private

server Options 값을 보관합니다.

MainWindow.xaml.cs 파일의 29 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : MainWindow(), OnLoaded().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: