0

我有一个 WPF 窗口,它调用连接到 WCF Web 服务的类库。这个Window的构造函数调用类库来获取一些数据。

运行解决方案时一切正常,但是当我尝试在设计模式下打开窗口时,出现此错误:

在 ServiceModel 客户端配置部分中找不到引用合同“FinancesService.IAccountingService”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。

我试过谷歌,但它只说我的问题是配置文件,但我的主项目中有配置。

谢谢

4

3 回答 3

2

您可以使用DesignerProperties.GetIsInDesignMode来检测设计模式,并避免尝试调用您的 Web 服务。

于 2012-11-25T18:05:22.080 回答
0

当您将控件从设计器放入某种形式时,Visual Studio 会执行您的控件代码(至少是 ctor)。当您的控件由 VS 实例化并且您的代码确实包含一些用于连接到远程端点的代码时,您将收到此异常,因为您的控件将您的“正常”进程假定为托管进程。

最简单的事情是检查您的 ctor 以了解执行过程。如果它是 devenv.exe,那么您可以跳过 wcf 连接调用以显示您的控件。您应该注意不会发生后续异常,但现在这应该是一件容易的事。

于 2012-11-25T18:01:41.947 回答
0

最简单的解决方案似乎是从 WPF 窗口的 Loaded 事件处理程序执行 WCF 服务调用,作为奖励,它会使您的应用程序看起来更具响应性。

于 2012-11-25T18:03:31.727 回答