.net - 使用命令行参数自定义容器配置

标签 .net wpf autofac caliburn.micro

我有一个 .NET 4.0、WPF 应用程序,它使用 Caliburn 1.5.2 和 Autofac 3.0.2。

我想使用命令行参数来自定义 IoC 容器的构建。

问题是命令行参数仅在 Appplication.OnStartup ( link ) 时可用,并且只有在 Bootstrapper.Configure 已经启动时才会发生。已调用。

我想这样做的原因是因为我在这个应用程序中有一些服务(USB 设备通信、Web 服务),我希望能够用模拟实例替换它们。这些服务在注册后立即初始化( Autofac's AutoActivation extension ),因此选择使用哪种类型的最佳时机是在容器中注册时。

我正在考虑:

  • 延迟应用程序主视图模型的服务初始化。

  • 将容器配置逻辑分为两个阶段,一个在 Bootstrapper.Configure 中,另一个在 Bootstrapper.OnStartup 中。

主要注意事项是:

  • View 模型将依赖于服务来初始化它们。
  • 由于容器配置分为两部分,我必须寻找依赖关系解析中的问题。
  • 我认为容器配置只在一个地方会更好。

我还考虑过寻找 Main(string[] args) 并将参数缓存在静态实例中,但该代码是在 WPF 应用程序中自动生成的,并且干扰似乎有点过于极端。

我想知道是否有人知道更好的方法。

最佳答案

Environment.GetCommandLineArgs()

我只是从 Bootstrapper.Configure() 调用它并检查命令行开关,就这么简单。

关于.net - 使用命令行参数自定义容器配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17797304/

相关文章:

c# - .NET Core 2.1 - 构建时的 dotnet/exe,缺少包

c# - 如何注册开放泛型类型、封闭泛型类型并使用 autofac 装饰两者?

c# - 当类是通用的时找不到 Web API Controller

logging - 使用 Common.Logging 和 Autofac 的自动化工厂?

.net - Watin CaptureWebPageToFile() 生成黑色图像

.net - pack ://application:, ,,/ResourceFile.xaml 从不工作

c# - 是否有许多可用的免费/开源扩展方法库?

WPF进行 View /编辑控件的好方法吗?

WPF Window.Close() 不触发 UserControl.Unloaded 事件

c# - 从 TextBlock MouseDown 获取 DataContext