Wpf 使用WCF服务时XAML设计器不工作
我刚开始使用WCF服务执行我的第一步,并编写了一个小WPF应用程序,它显示从WCF服务检索到的数据。我将应用程序分为两个项目:一个项目包含(WPF)UI,另一个项目包含WCF服务客户端 将端点定义从第二个项目的app.config复制到第一个项目(当然是启动项目)的app.config后,应用程序现在正在运行 但是自从我开始使用WCF服务客户端以来,XAML设计器就不再工作了。它始终显示异常: 在ServiceModel客户端配置部分中找不到引用约定“MyContract”的默认终结点元素。这可能是因为找不到应用程序的配置文件,或者在客户端元素中找不到与此约定匹配的端点元素 这与我在将端点定义复制到另一个app.config文件之前得到的异常完全相同。所以我猜XAML设计器没有使用这种配置。有可能修复这种奇怪的行为吗?如果XAML设计器根本不使用WCF(IMHO无论如何也不应该使用WCF),而只使用一些默认数据,对我来说是可以的 我已经考虑过在DesignerMode案例中使用Rhinomock存根WCF服务客户端,但是存根异步WCF调用并不是最简单的事情Wpf 使用WCF服务时XAML设计器不工作,wpf,wcf,xaml,visual-studio-2012,designer,Wpf,Wcf,Xaml,Visual Studio 2012,Designer,我刚开始使用WCF服务执行我的第一步,并编写了一个小WPF应用程序,它显示从WCF服务检索到的数据。我将应用程序分为两个项目:一个项目包含(WPF)UI,另一个项目包含WCF服务客户端 将端点定义从第二个项目的app.config复制到第一个项目(当然是启动项目)的app.config后,应用程序现在正在运行 但是自从我开始使用WCF服务客户端以来,XAML设计器就不再工作了。它始终显示异常: 在ServiceModel客户端配置部分中找不到引用约定“MyContract”的默认终结点元素。这可
有什么想法吗?我发现了如何避免这个问题:如果我从ViewModel的构造函数(在主窗口的XAML文件中定义为DataContext)调用任何对我的业务对象进行WCF通信的东西,XAML设计器似乎就不起作用了 简单的
if (DesignerProperties.GetIsInDesignMode(new DependencyObject()))
{
return;
}
在访问业务对象之前,让XAML设计器再次工作。同样,反之亦然;也就是说,通过将服务引用内容移动到'main'app.config,它可以被'child'项目找到。也有同样的问题 我的解决方案是将视图模型分配从
xaml
移动到.cs
代码文件
步骤1:在xaml中删除:
<Window.DataContext>
<viewModel:MainViewModel/>
</Window.DataContext>
你的XAML对象怎么会调用wcf呢?发布你的代码我已经编辑了你的标题。请看“”,其中的共识是“不,他们不应该”。坦率地说,我现在不明白为什么XAML设计者会调用WCF服务。我使用的是ViewModel,它在构造函数中调用WCF服务。也许XAML设计器构造了一个ViewModel对象?是的,设计器正在运行ViewModel以尝试获取表单的一些数据。参见下面Baldewin的答案,了解解决方法。这是一个很好的实践,可以确保您的属性在设计时进行检查,并可能排除一些模拟数据。与什么相反?你在说什么?
DataContext = new MainViewModel();