我有从WCF soap服务生成的类。
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 的最佳方法是什么?还是有更好的方法?
干杯
答案 0 :(得分: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
{
...
}
答案 1 :(得分: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;
}
}
}