轻量级MVVM框架Stylet介绍:(3)关于Bootstrapper「建议收藏」

轻量级MVVM框架Stylet介绍:(3)关于Bootstrapper「建议收藏」Bootstrapper负责引导应用程序,用于配置IoC容器,创建根ViewModel的新实例,并使用显示WindowManager出来。它还提供了各种其他功能,如下所述。引导程序有两种风格

大家好,又见面了,我是你们的朋友全栈君。

Bootstrapper负责引导应用程序,用于配置 IoC 容器,创建根 ViewModel 的新实例,并使用显示WindowManager出来。它还提供了各种其他功能,如下所述。

引导程序有两种风格:BootstrapperBase
,它要求您自己配置 IoC 容器,以及Bootstrapper
,这使用 Stylet 的内置 IoC 容器 StyletIoC。

示例引导程序,使用 StyletIoC:



class Bootstrapper : Bootstrapper<MyRootViewModel>
{
   protected override void OnStart()
   {
      // This is called just after the application is started, but before the IoC container is set up.
      // Set up things like logging, etc
   }
 
   protected override void ConfigureIoC(IStyletIoCBuilder builder)
   {
      // Bind your own types. Concrete types are automatically self-bound.
      builder.Bind<IMyInterface>().To<MyType>();
   }
 
   protected override void Configure()
   {
      // This is called after Stylet has created the IoC container, so this.Container exists, but before the
      // Root ViewModel is launched.
      // Configure your services, etc, in here
   }
 
   protected override void OnLaunch()
   {
      // This is called just after the root ViewModel has been launched
      // Something like a version check that displays a dialog might be launched from here
   }
 
   protected override void OnExit(ExitEventArgs e)
   {
      // Called on Application.Exit
   }
 
   protected override void OnUnhandledException(DispatcherUnhandledExceptionEventArgs e)
   {
      // Called on Application.DispatcherUnhandledException
   }
}

使用定制的IOC容器

将另一个 IoC 容器与 Stylet 配合使用非常简单。我已经在Bootstrappers项目中包含了许多流行的IoC容器的引导程序。这些都是经过单元测试的,但未经实战测试:随意自定义它们。

请注意,Stylet nuget 包/ dll 不包含这些,因为它会添加不必要的依赖项。同样,我不会发布特定于 IoC 容器的包,因为这是浪费精力。

将所需的引导程序从上面的链接复制到项目中的某个位置。然后对它进行子类化,就像您通常对 上文所述进行子类化一样。然后将子类添加到 App.xaml.cs,如快速入门中所述,例如Bootstrapper<TRootViewModel>

public class Bootstrapper : AutofacBootstrapper<ShellViewModel>
{
}
<Application x:Class="Stylet.Samples.Hello.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:s="https://github.com/canton7/Stylet"
             xmlns:local="clr-namespace:Stylet.Samples.Hello">
    <Application.Resources>
       <s:ApplicationLoader>
            <s:ApplicationLoader.Bootstrapper>
                <local:Bootstrapper/>
            </s:ApplicationLoader.Bootstrapper>
        </s:ApplicationLoader>
    </Application.Resources>
</Application>

如果您想为另一个 IoC 容器编写自己的引导程序,那也很容易。看看上面的引导程序,看看你需要做什么。

将资源字典添加到 App.xaml

s:ApplicationLoader 本身就是一个资源字典。如果您需要将自己的资源字典添加到 App.xaml,则必须将 s:ApplicationLoader 嵌套在资源字典中作为合并词典,如下所示:


<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <s:ApplicationLoader>
                <s:ApplicationLoader.Bootstrapper>
                    <local:Bootstrapper/>
                </s:ApplicationLoader.Bootstrapper>
            </s:ApplicationLoader>

            <ResourceDictionary Source="YourDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154911.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Xposed模块制作入门「建议收藏」

    Xposed模块制作入门「建议收藏」由于某个项目的特殊需求,可能要用Xposed框架干一些事情。然而在国内基本没有找到关于Xposed模块制作的文章(基本上全是下载呵呵),只在XDA上找到一篇教程。这篇文章差不多是XDA上的教程翻译过来的(原文链接:http://forum.xda-developers.com/showthread.php?t=2709324可能需科学上网) 首先,Xposed框架是干啥的捏?玩安卓机比较多的

  • SQL Developer_Netbank

    SQL Developer_NetbankOracle .Net Develoer

  • 记一次没遇到过的UPX脱壳

    记一次没遇到过的UPX脱壳关于壳的介绍见CTF-WIKI这里就不多赘述了拿到我们的程序,先查看64位upx壳,首先直接upx-d试一下,结果是失败报错提示下图(一开始也有怀疑过是不是版本不兼容的问题,后来尝试高版本还是兼容低版本的)然后想尝试手脱,打开x64dbg,单步下去直接跑飞了,重新载入,想看看f7能否跟进,结果发现第一个指令是一个jmp指令,遂失败搜索这个报错无果,问了师傅,可能是upx非标准格式,找到了一篇文章链接如下:https://www.52pojie.cn/thread-326995-1-1.

  • 安装虚拟机不支持i686 cpu的解决办法

    安装虚拟机不支持i686 cpu的解决办法作者:朱金灿来源:http://blog.csdn.net/clever101在thinkpad笔记本上安装ubuntu-14.04-desktop虚拟机,提示:thiskernelrequresanx86-64cpu,butonlydetectedani686cpu,如图:网上搜了下,是电脑的bios的虚拟化选项没有打开的缘…

  • TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT最大存储容量

    TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT最大存储容量PertheMySQLdocs,therearefourTEXTtypes:根据MySQL文档,有四种TEXT类型:TINYTEXTTINYTEXTTEXT

  • 正确姿势临时和永久开启关闭Android的SELinux

    正确姿势临时和永久开启关闭Android的SELinux      正确姿势临时和永久关闭Android的SELinux前言  自从Android4.4强制开启SELinux以后,在开发中我们经常会遇到avcdenied的问题,为了方便开发调试我们会将SELinux关闭,那么本章将带领读者怎么临时和永久关闭Android的SELinux。正确姿势临时和永久关闭Android的SELinux1.1临时关闭Andro…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号