Bal*_*win 2 wpf wcf xaml designer visual-studio-2012
我刚刚开始使用WCF服务执行我的第一步,并编写了一个显示从WCF服务检索的数据的WPF应用程序.我将应用程序拆分为两个项目:一个包含(WPF)UI的项目和一个包含WCF服务客户端的第二个项目.
将端点定义从第二个项目的app.config复制到第一个项目的app.config(当然是StartUp项目)后,应用程序正在运行.
但是自从我开始使用WCF服务客户端以来,XAML设计器就不再起作用了.它总是显示异常:
无法在ServiceModel客户端配置部分中找到引用合同"MyContract"的默认端点元素.这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素.
这与我将端点定义复制到另一个app.config文件之前的异常完全相同.所以我猜XAML设计师不使用这种配置.是否有可能解决这种奇怪的行为?如果XAML设计师根本不使用WCF(它不应该做恕我直言)并且只使用一些默认数据,那对我来说没问题.
我已经考虑过使用RhinoMocks 在DesignerMode案例中存根WCF服务客户端,但是对异步WCF调用进行存根并不是最简单的事情.
有任何想法吗?
我发现了如何避免这个问题:如果我在业务对象上调用任何东西,而且从ViewModel的构造函数(在主窗口的XAML文件中定义为DataContext)进行WCF通信,那么XAML设计器似乎不起作用.
一个简单的
if (DesignerProperties.GetIsInDesignMode(new DependencyObject()))
{
return;
}
Run Code Online (Sandbox Code Playgroud)
在访问业务对象之前,XAML设计器再次工作.