Dreamine.Logging.Wpf
1.0.2
Dreamine.Logging.Wpf 사용자 인터페이스 기능과 구성 요소를 제공합니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
DreamineLoggingWpfRegistration.cs
이 파일의 문서화 페이지로 가기
1
using
System;
2
using
System.Windows;
3
using
Dreamine.Logging.Options;
4
using
Dreamine.Logging.Registration;
5
using
Dreamine.Logging.Wpf.Services
;
6
using
Dreamine.Logging.Wpf.ViewModels
;
7
using
Dreamine.MVVM.Core;
8
9
namespace
Dreamine.Logging.Wpf.Registration
;
10
19
public
static
class
DreamineLoggingWpfRegistration
20
{
29
private
static
readonly
object
SyncRoot
=
new
();
38
private
static
bool
_isExitHandlerRegistered
;
39
56
public
static
void
Register
(Action<DreamineLoggingOptions>? configure =
null
)
57
{
58
var options =
new
DreamineLoggingOptions();
59
configure?.Invoke(options);
60
61
IAsyncDisposable shutdownHandle = DreamineLoggingRegistration.Register(options);
62
63
DMContainer.RegisterSingleton<
WpfLogUiDispatcher
>(
64
new
WpfLogUiDispatcher
());
65
DMContainer.RegisterSingleton<
ILogUiDispatcher
>(
66
DMContainer.Resolve<
WpfLogUiDispatcher
>());
67
68
DMContainer.Register<
DreamineLogPanelViewModel
>(() =>
69
new
DreamineLogPanelViewModel
(
70
DMContainer.Resolve<
Dreamine
.
Logging
.Interfaces.IDreamineLogStore>(),
71
DMContainer.Resolve<
ILogUiDispatcher
>()));
72
73
RegisterShutdownHandler
(shutdownHandle);
74
}
75
84
public
static
void
Reset
()
85
{
86
lock (
SyncRoot
)
87
{
88
_isExitHandlerRegistered
=
false
;
89
}
90
}
91
108
private
static
void
RegisterShutdownHandler
(IAsyncDisposable shutdownHandle)
109
{
110
var app = Application.Current;
111
if
(app is
null
)
112
{
113
return
;
114
}
115
116
lock (
SyncRoot
)
117
{
118
if
(
_isExitHandlerRegistered
)
119
{
120
return
;
121
}
122
123
_isExitHandlerRegistered
=
true
;
124
}
125
126
app.Exit += (_, _) =>
127
{
128
try
129
{
130
shutdownHandle.DisposeAsync().AsTask().GetAwaiter().GetResult();
131
}
132
catch
133
{
134
// Shutdown errors must not prevent process exit.
135
}
136
};
137
}
138
}
Dreamine
Definition
DreamineLoggingWpfRegistration.cs:9
Dreamine.Logging
Definition
DreamineLoggingWpfRegistration.cs:9
Dreamine.Logging.Wpf.Registration
Definition
DreamineLoggingWpfRegistration.cs:9
Dreamine.Logging.Wpf.Services
Definition
BatchedDispatcher.cs:8
Dreamine.Logging.Wpf.ViewModels
Definition
DreamineLogPanelViewModel.cs:13
Dreamine.Logging.Wpf.Registration.DreamineLoggingWpfRegistration
Definition
DreamineLoggingWpfRegistration.cs:20
Dreamine.Logging.Wpf.Registration.DreamineLoggingWpfRegistration.RegisterShutdownHandler
static void RegisterShutdownHandler(IAsyncDisposable shutdownHandle)
Definition
DreamineLoggingWpfRegistration.cs:108
Dreamine.Logging.Wpf.Registration.DreamineLoggingWpfRegistration.Register
static void Register(Action< DreamineLoggingOptions >? configure=null)
Definition
DreamineLoggingWpfRegistration.cs:56
Dreamine.Logging.Wpf.Registration.DreamineLoggingWpfRegistration.SyncRoot
static readonly object SyncRoot
Definition
DreamineLoggingWpfRegistration.cs:29
Dreamine.Logging.Wpf.Registration.DreamineLoggingWpfRegistration._isExitHandlerRegistered
static bool _isExitHandlerRegistered
Definition
DreamineLoggingWpfRegistration.cs:38
Dreamine.Logging.Wpf.Registration.DreamineLoggingWpfRegistration.Reset
static void Reset()
Definition
DreamineLoggingWpfRegistration.cs:84
Dreamine.Logging.Wpf.Services.ILogUiDispatcher
Definition
ILogUiDispatcher.cs:15
Dreamine.Logging.Wpf.Services.WpfLogUiDispatcher
Definition
WpfLogUiDispatcher.cs:16
Dreamine.Logging.Wpf.ViewModels.DreamineLogPanelViewModel
Definition
DreamineLogPanelViewModel.cs:31
Registration
DreamineLoggingWpfRegistration.cs
다음에 의해 생성됨 :
1.17.0