91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET Core 3.0中WPF怎么使用IOC

發布時間:2021-06-12 18:36:17 來源:億速云 閱讀:377 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關.NET Core 3.0中WPF怎么使用IOC,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

步驟

1、通過命令行創建wpf項目,當然你也可以通過vs2019來進行創建。具體的步驟就不演示了,當然,如果你還不會用vs2019創建項目,那么請你右上角關閉網頁,省的煩心。

? mkdir WpfIoc
? cd WpfIoc
? dotnet.exe --version
3.0.100-preview6-012264

? dotnet new wpf
The template "WPF Application" was created successfully.

Processing post-creation actions...
Running 'dotnet restore' on C:\Users\laure\projects\WpfIoc\WpfIoc.csproj...
 Restore completed in 90.03 ms for C:\Users\laure\projects\WpfIoc\WpfIoc.csproj.

Restore succeeded.

? dotnet build
Microsoft (R) Build Engine version 16.1.54-preview+gd004974104 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

 Restore completed in 19.92 ms for C:\Users\laure\projects\WpfIoc\WpfIoc.csproj.
C:\Program Files\dotnet\sdk\3.0.100-preview6-012264\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(151,5): message NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-preview [C:\Users\laure\projects\WpfIoc\WpfIoc.csproj]
 WpfIoc -> C:\Users\laure\projects\WpfIoc\bin\Debug\netcoreapp3.0\WpfIoc.dll

Build succeeded.
  0 Warning(s)
  0 Error(s)

Time Elapsed 00:00:01.63

我們想要實現的是引導應用程序并在MainWindow的構造函數中注入一個服務,該服務將被調用以便在應用程序的主窗口上顯示一些文本。

2、我們首選要安裝下Microsoft Extensions DependencyInjectionnuget包,當然你也可以通過下面的方式進行添加,不過最好還是通過nuget的方式引入最新的預覽版即可。

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

 <PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFramework>netcoreapp3.0</TargetFramework>
  <UseWPF>true</UseWPF>
 </PropertyGroup>

 <ItemGroup>
  <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0-preview6.19304.6" />
 </ItemGroup>

 <ItemGroup>
  <ProjectReference Include="..\StoneGenerate.Core\StoneGenerate.Core.csproj" />
 </ItemGroup>

</Project>

3、創建一個ITextService接口服務,這個接口將由依賴注入容器注入到MainWindow類中進行使用。

public interface ITextService
{
  string GetText();
}

4、當然你還得創建一個TextService類來實現上面的接口。

class TextService : ITextService
{
  private string _text;

  public TextService(string text)
  {
    _text = text;
  }

  public string GetText()
  {
    return _text;
  }
}

5、接下來在我們的入口App.xaml.cs文件中配置我們的IOC容器,并入住我們的服務,相信做過.NET Core項目的你,對下面的代碼應該都非常的熟悉,這里就不過多的解釋了,省的浪費大家的寶貴時間。

public App()
{
  var serviceCollection = new ServiceCollection();
  ConfigureServices(serviceCollection);

  _serviceProvider = serviceCollection.BuildServiceProvider();
}

private void ConfigureServices(IServiceCollection services)
{
  services.AddSingleton<ITextService>(provider => new TextService("Hi WPF .NET Core 3.0"));
  services.AddSingleton<MainWindow>();
}

6、接下來我們重寫一下App.xaml.cs的OnStartup方法,解析出MainWindow 并show出來

protected override void OnStartup(StartupEventArgs e)
    {
      base.OnStartup(e);
      var main = serviceProvider.GetRequiredService<MainWindow>();
      main.Show();
    }

當然,這也就意味著你得移除App.xmal中的啟動選項,代碼如下:

<Application x:Class="wpfioc.App"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:local="clr-namespace:wpfioc"
       Startup="App_OnStartup">
  <Application.Resources>
  </Application.Resources>
</Application>

1、接下來我們修改一下MainWindow的xaml代碼以便來顯示我們的文本信息:

<Window x:Class="WpfIoc.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfIoc"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="9*" />
      <RowDefinition Height="1*" />
    </Grid.RowDefinitions>
    <Label Name="Label" Content="Hello .NET Core!" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="40" />
  </Grid>
</Window>

2、當然,MainWindow的cs代碼也要進行下調整,以便能夠接受IOC注入進來的方法。

public partial class MainWindow : Window
{
  public MainWindow(ITextService textService)
  {
    InitializeComponent();

    Label.Content = textService.GetText();
  }
}

結果

相信上面的繁瑣的步驟你也都看完了,那么接下來就是見證奇跡的時刻了,睜開你的雙眼,奉上精美圖片一張:

.NET Core 3.0中WPF怎么使用IOC

看完上述內容,你們對.NET Core 3.0中WPF怎么使用IOC有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新绛县| 延川县| 江阴市| 合江县| 城口县| 于都县| 广西| 贡嘎县| 山东省| 唐山市| 拉萨市| 宿迁市| 望谟县| 隆尧县| 四川省| 南宫市| 五大连池市| 罗甸县| 融水| 科技| 阿城市| 登封市| 云浮市| 略阳县| 临夏县| 岚皋县| 越西县| 滨州市| 抚顺市| 庆阳市| 盐边县| 芮城县| 班戈县| 同江市| 军事| 余江县| 双江| 宁强县| 牙克石市| 吴旗县| 河曲县|