gpt4 book ai didi

c# - 如何找出产生 XamlParseException 的 XAML 文件

转载 作者:行者123 更新时间:2023-11-30 20:39:36 25 4
gpt4 key购买 nike

我在运行时从 C# WPF 应用程序收到以下错误:

A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll

Additional information: 'Set property 'System.Windows.Controls.ContentControl.Content' threw an exception.' Line number '6' and line position '6'.

如何找到与哪个文件关联的文件? Visual Studio 解决方案包含两个 XAML 文件,app.xamlMainWindow.xaml

我在 Windows 7 上使用 VS 2010。该应用程序面向 .NET 4.0。

更新:

根据 Kasper 的有用建议,我详细显示了异常,这是它显示的内容:

enter image description here

根据那里的信息,我能够收集到某个 DLL 丢失了。提供 DLL 解决了这个问题,但我仍然遇到其他 XAML 解析错误。

最佳答案

在代码隐藏中,XAML 代码在自动生成的 InitializeComponent 方法中进行解析。此方法在 Window 对象的构造函数中调用。因此,要获得有关异常的更多详细信息,请将对 InitializeComponent 的调用放在 try/catch block 中。这样,您就可以访问无用的 XamlParseException,还可以访问它的 InnerExceptions 和 StackTrace。

更新!您可以使用 MessageDialog 调用内部异常。

public partial class Window1 : System.Windows.Window
{
public Window1()
{
try

{
InitializeComponent();
}
catch ( Exception ex )
{
// Log error (including InnerExceptions!)
// Handle exception
MessageDialog dialog = new MessageDialog(ex.InnerException);
dialog.ShowAsync();

}
}
}

希望对您有所帮助:)

还有一个技巧:

  • 在 Visual Studio 中打开“异常”窗口(调试/异常)。
  • 点击“添加”
  • 添加“System.Windows.Markup.XamlParseException”
  • 选中此框以在抛出此异常时中断。
  • 按 F5!

您会发现您捕获的 XamlParseException 更具描述性,并且会给出 xaml 文件中的正确位置。

让我知道这是否更容易 :)

关于c# - 如何找出产生 XamlParseException 的 XAML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34230728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com