1

我有从 WCF 肥皂服务生成的类。

public partial class Job
{
  public ActivityId {get;set;}          
}

并对课程进行书面补充

public partial class Job
{
  public Activity Activity 
  {
    get
    {
      return *ActivityService*.Activities
                  .Where(x=>x.ActivityId==this.ActivityId)
                  .FirstOrDefault();
    }
  }
}

由于 Prism 的模块化特性,Activity 列表的类来自不同的 Web 服务和模块,而不是生成 Job 的模块。

那么填充ActivityService的最佳方法是什么,或者有更好的方法吗?

干杯

4

2 回答 2

0

您修复Export Attribute您的服务,您修复Import您的客户,并通过注册您Catalog的服务完成

public partial class Job
{
  [Import]
  public Activity Activity 
  {
    get
    {
      return *ActivityService*.Activities
                  .Where(x=>x.ActivityId==this.ActivityId)
                  .FirstOrDefault();
    }
  }
}

[Export]
public class Activity
{
 ...

}
于 2012-09-04T17:23:56.613 回答
0

请注意,我采用了不同的方法并使用了装饰器模式。

JobService 在构造时导入 ActivityService 并使用私有成员字段引用它。当 JobService 从 WCF 服务检索作业时,它使用 ActivityService 填充 Activity。

public class JobService
{
  private ActivityService activityService;

  public JobService(ActivityService activityService)
  {
    this.activityService = activityService;
  }

  public Job GetJob(int jobId)
  {
    using(Client client = new Client())
    {
       Job j = client.GetJob(jobId);

       j.Activity = this.activityService.Activities
                        .Where(a=>a.ActivityId == j.ActivityId)
                        .FirstOrDefault();
       return j;
    }
  }  
}
于 2012-09-07T09:11:22.333 回答