简单的喷油器WPF集成



我在我的WPF项目中实现了推荐的启动,并遇到了一些我遇到的小问题,但想让您知道,要么纠正或提供反馈。

之后的runapplication中
 var app = new App();

我需要添加:

app.InitializeComponent();

对于要加载的app.xaml中定义的资源词典。

进一步,因为我将容器配置为启动视图,该视图依赖于这些资源,我无法调用container.verify()(由于似乎尝试实例化视图),直到加载这些资源后,因此第一个现在的运行行是:

var app = new App();
app.InitializeComponent();
container.Verify();
var mainWindow = container.GetInstance<MainWindow>();
...(more init stuff)
 app.Run(mainWindow);

使用此程序,我的程序启动并按照预期的方式工作。

发布答案,因为我遇到了同一问题,并且注意到用户确实确实在简单注射器上弄清楚了这个问题,github问题论坛:wpf Integration#493

请参阅下面的评论,以下来自简单喷油器WPF集成指南的代码的代码。

program.cs

public class Program
{
    [STAThread]
    private static void Main()
    {
        var container = Bootstrap();
        // RunApplication method placed here for simplicity
        try
        {
            var app = new App();
            app.InitializeComponent(); // This is needed to utilize Application.Resources XAML in MainWindow
            container.Verify(); // Verify after ResourceDictionaries are loaded from Application.Resources XAML
            var mainWindow = container.GetInstance<MainWindow>();
            app.Run(mainWindow);
        }
        catch (Exception exception)
        {
            // TODO: Log exception
        }
    }
    private static Container Bootstrap()
    {
        // Create the container
        var container = new Container();
        // Register types
        // Register windows and view models:
        container.Register<MainWindow>();
        return container;
    }
}

最新更新