Den*_*nis 8 c# wpf wcf mvvm mvvm-light
我正在使用MVVM Light Toolkit 4.1.24开发一个WPF应用程序.这是我的ViewModel Locator类.
public class ViewModelLocator
{
/// <summary>
/// Initializes a new instance of the ViewModelLocator class.
/// </summary>
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
if (ViewModelBase.IsInDesignModeStatic)
{
// Create design time view services and models
SimpleIoc.Default.Register<IService1, DesignDataService>();
}
else
{
// Create run time view services and models
SimpleIoc.Default.Register<IService1, Service1Client>();
}
SimpleIoc.Default.Register<MainViewModel>();
}
public MainViewModel Main
{
get
{
return ServiceLocator.Current.GetInstance<MainViewModel>();
}
}
public static void Cleanup()
{
// TODO Clear the ViewModels
ServiceLocator.Current.GetInstance<MainViewModel>().Cleanup();
}
}
Run Code Online (Sandbox Code Playgroud)
哪里
IService1 - 是一个WCF服务接口
DesignDataService - 用于设计目的的IService1的实现
Service1Client - 实现IService1的WCF代理类
我有两个问题:
1)运行App时,我收到一个错误,如"无法注册:在Service1Client中找到多个构造函数,但没有使用PreferredConstructor标记.".为此,我已将"[PreferredConstructorAttribute]"属性添加到Service1Client默认构造函数,并且应用程序按预期运行.我知道这不是一个好方法,原因有两个
那么还有更好的方法吗?
2)我想手动将端点地址传递给Service1Client.我怎样才能做到这一点?
提前致谢...
您可以通过以下方法向服务客户端添加端点地址。
SimpleIoc.Default.Register(() => new Service1Client("WSHttpBinding_IService", wcfConfig.EndpointUrl));
| 归档时间: |
|
| 查看次数: |
702 次 |
| 最近记录: |