1

WCFSOAPサービスから生成されたクラスがあります。

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のモジュール性により、アクティビティのリストのクラスは、ジョブの生成元とは異なるWebサービスおよびモジュールから取得されます。

では、 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を使用してアクティビティにデータが入力されます。

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 に答える