2

我正在尝试使用 MVVM 架构创建示例 WPF 应用程序。我的模型具有Employee类 {DTO} 以及相应的视图和视图模型。

同样,我创建了 WCF 服务,该服务具有 WPF 应用程序的引用,以利用我之前创建的模型 {Employee}。

我的情况是我必须从服务中获取所有员工的列表。对于该代码如下

public class Service1 : IService1
{
    EmployeeData EmpData = new EmployeeData();

    public ObservableCollection<Employee> loadAllEmployees()
    {

        return EmpData.LoadAllEmployees();
    }

这是 MVVM 模型类的参考。加载所有员工的代码如下 EmployeeService 是我的 wcf 服务

       public ObservableCollection<Employee> EmployeeList
    {
        get 
        {
            return employeeList;             
        }
        set
        {
            employeeList = value;
            NotifyPropertyChanged("EmployeeList");
        }

      EmployeeService.Service1Client EmpService = new EmployeeService.Service1Client();
      EmployeeList = EmpService.loadAllEmployees();

但这里面临错误

Cannot Implicitly convert type System.Collections.Object.ObservableCollection<WPF_TestProj.EmployeeService.Employee> to System.Collections.Object.ObservableCollection<WPF_TestProj.Model.Employee>

如果 delcareEmployeeList作为EmployeeService.Employee这个列表不会出现,但我的服务没有EmployeeClass 。

请建议我哪里错了。

4

2 回答 2

4

您可以Employee在共享库中定义,以便 WCF 和 WPF 都可以引用和使用同一个Employee类。

于 2013-05-11T20:58:05.420 回答
1

您是否使用服务引用来引用 WCF?如果是这样,那么您不需要直接引用服务库,因为服务公开的任何类型都将作为 WPF 应用程序中服务代理的一部分创建。如果您直接引用库,那么对服务方法的调用可能会返回作为服务引用的一部分定义的模型,但您的属性使用的是直接在服务库中定义的类型。

于 2013-05-11T22:48:12.147 回答