2011-05-05 57 views
11

我有一个WPF .NET 4应用程序,我重写了OnStartup方法以处理传递给我的应用程序的文件。但是,应用程序运行时似乎没有调用此方法。我在那里放了一个例外,甚至是一个断点,它会启动并完全忽略它。为什么Application.OnStartup不被调用?

我错过了什么吗?

代码App.xml.cs:

/// <summary> 
/// Interaction logic for App.xaml 
/// </summary> 
public partial class App : Application 
{ 
    protected override void OnStartup(StartupEventArgs e) 
    { 
     throw new NotImplementedException(); 
    } 
} 

内容的App.xaml的:

<Application x:Class="XGN_Image_Downloader.App" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     StartupUri="MainWindow.xaml"> 
<Application.Resources> 

</Application.Resources> 
</Application> 

编辑:找到了! App.xaml中的x:Class属性与App.xaml.cs类不匹配:)这就是您在喝葡萄酒时编码时所得到的结果。 (感谢这个线程:WPF app startup problems

+0

无法仅通过此信息进行回放。我创建了一个WPF应用程序,将你的代码粘贴到现有的应用程序代码后面,在throw行上放置一个调试中断,运行它,然后调试器打破了该语句。你可以发布你的其他应用程序相关的代码?可能app.xaml? – 2011-05-05 05:01:14

+0

您的解决方案中是否有多个项目?这个项目是否设置为启动项目? – 2011-05-05 05:03:04

+0

另一个项目是一个类库。解决方案中只有2个项目。该项目设置为启动项目。除了我的app.xaml,我只有一个主窗口,没有任何花哨。 – 2011-05-05 05:04:15

回答

17

发现它,我不得不将App.xaml中的x:Class属性设置为与App.xaml.cs类相同的类。这是由于我身边的重构造成的错误。

+1

我已经来到这么晚,但有同样的问题,即使我的x:Class属性是好的。看起来OnStartup也不会触发,如果您的项目没有在属性中指定的“启动项目”。应用程序仍然启动,只是不启动启动。 – BenCr 2013-02-06 09:47:07

相关问题