免責(zé)聲明:我真的是WPF的新手。在網(wǎng)上瀏覽后,我了解到HttpClient應(yīng)該用作WPF中Windows之間共享的單例。但是,我似乎找不到在MVC中找到的清晰的啟動(dòng)入口點(diǎn)(啟動(dòng),du?。?。我應(yīng)該在哪里實(shí)例化HttpClient,如何在多個(gè)窗口中使用它?目前我有兩個(gè)窗戶。登錄名和MainWindow。兩者都非?;A(chǔ)。例子:public partial class Login : Window{ public Login() { InitializeComponent(); } private void BtnLoginSubmit_Click(object sender, RoutedEventArgs e) { }}在我的App.xaml.cs中,我實(shí)例化了一個(gè)HttpClient對(duì)象,可以從我的MainWindow訪問該對(duì)象:App.xaml.cs:public partial class App : Application{ public HttpClient httpClient { get; set; }}MainWindow.xaml.cs:public partial class MainWindow : Window { private static ObservableCollection<string> states; public static void Add(string state) { states.Add(state); } public MainWindow() { InitializeComponent(); ((App)Application.Current).httpClient = new HttpClient(); states = new ObservableCollection<string>(); states.Add("Initialized"); states.CollectionChanged += states_CollectionChanged; LblStates.ItemsSource = states; Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch); } static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e) { if (e.Reason == SessionSwitchReason.SessionLock) { } MainWindow.Add(e.Reason.ToString()); } void states_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) { LblStates.Items.Refresh(); } } }
2 回答

慕尼黑5688855
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
最基本的方法是添加一個(gè)包含HttpClient靜態(tài)實(shí)例的靜態(tài)類。
internal static class HttpClientManager
{
public static HttpClient Client = InititializeHttpClient();
}
然后,您可以從任何地方引用客戶端,例如HttpClientManager.HttpClient。

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
我不明白為什么您需要HttpClient
在不同的窗口之間共享-最好的方法是在需要時(shí)調(diào)用它,除非需要保留狀態(tài)。也就是說,您可以在應(yīng)用程序級(jí)別創(chuàng)建HttpClient并在HttpClient
那里定義一個(gè)。
您可以定義它,App.xaml.cs
并在必要時(shí)重新使用。它不一定需要是靜態(tài)的,您只需要引用特定的實(shí)例化實(shí)體即可。
- 2 回答
- 0 關(guān)注
- 313 瀏覽
添加回答
舉報(bào)
0/150
提交
取消