現在、PrismとMEFを使用するSilverlightアプリケーションがあります。このアプリケーションでいくつかのWCFサービスに接続しますが、「コントローラー」クラスを使用して、インスタンス化されたクライアント生成のサービスプロキシオブジェクトを保持します。
私がやりたいのは、このコントローラーにサービス参照を挿入することです(現在IEventAggregatorで行っているように)。これを行う方法がわかりません。サービスコントラクトインターフェイスを実装し、サービスプロキシオブジェクトへの参照を保持するラッパークラスを作成する必要がありますか?
私が今していること:
/// <summary>
/// WCF client used to communitcate with the data WCF service
/// </summary>
private DataClient _dataClient; // DataClient is the client generated object from a service reference
/// <summary>
/// Region manager for the application
/// </summary>
private IRegionManager _manager;
/// <summary>
/// Application event aggregator
/// </summary>
private IEventAggregator _eventAggregator;
/// <summary>
/// Constructor. Initializes the statistics controller, hooks up all services, and initializes all commands.
/// </summary>
/// <param name="manager"></param>
[ImportingConstructor]
public ZOpportunityController(IRegionManager manager, IEventAggregator events)
{
_manager = manager;
_eventAggregator = events;
//hookup a WCF service used to retrive GP data
_dataClient = new ZellerGpDataClient();
_dataClient.OpenCompleted += new EventHandler<AsyncCompletedEventArgs>(_dataClient_openCompleted);
_dataClient.GetCustomersCompleted += new EventHandler<GetCustomersCompletedEventArgs>(_dataClient_GetCustomersCompleted);
_dataClient.OpenAsync();
}
ここでわかるように、コントローラーコンストラクターでサービスに接続しますが、IRegionManagerやIEventAggregatorの場合と同じように、サービスオブジェクトをコントローラーに挿入したいと思います。
編集: このブログ投稿は本当に私が達成しようとしていたことでした。