应用程序对象正在closuresexception

我正在开发一个Excel加载项,使用多个窗体窗体和多个Element主机对象来包含WPF控件。 我也有一个表单调用Web服务。 并将结果显示回Excel。

我目前面临的问题是当前:与插件(没有发现特定的顺序)的一些交互后,我的插件停止行为正常,在PresentationFramework.dll内的某处引发无效的操作exception。 我不能检查那里运行的代码,因为它隐藏了。

exception说明如下:“应用程序对象正在closures”。

什么可能导致这个?

在初始化用于一些自定义graphics的控件时抛出

InitializeComponent(); 

堆栈跟踪如下所示:

System.Windows.Application.LoadComponent(Object component,Uri resourceLocator)\ System \ Windows \ Application \ GetResourcePackage在d:\ Projects \ Common \ Depict \中的Drawing.MoleculeView..ctor()中的第1行\ r \ n中的d:\ Projects \ Common \ Depict \ Drawing \ MoleculeView.xaml中的Drawing.MoleculeView.InitializeComponent在C:\ Users \ Nikolay \ Desktop \ Addin \ DrawingControlWrapper \ MultipleDrawingControl.xaml.cs:DrawingControlWrapper.MultipleDrawingControl.LoadMolecule(Molecule molecules,Point [] bounds)中绘制\ MoleculeView.xaml.cs:line 192 \ r \在C:\ Users \ Nikolay \ Desktop \ Addin \ LMCExcelFunctions \中的LMCExcelFunctions.ThisAddIn.QueueMolecule(Object mol)处的CallSite.Target(Closure,CallSite,MultipleDrawingControl,Object,Point [])\ r \ ThisAddIn.cs:第182行\ r \ n在CallSite.Target(闭合,CallSite,types,对象)\ r \ n在LMCExcelFunctions.ThisAddIn.addin_SheetSelectionChange(对象sh,范围目标) 在c:\ Users \ Nikolay \ Desktop \ Addin \ LMCExcelFunctions \ ThisAddIn.cs中:第93行

XAML看起来像这样:

 <UserControl x:Class="Drawing.MoleculeView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> <DockPanel x:Name="layout" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> </DockPanel> </UserControl> 

如果你设置Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown你的问题应该消失。

通过使用内部元素主机来解决:似乎由元素主机内托pipe的控件创build的任何控件都必须具有其自己的元素主机。