私はWCFサービスを実装していますが、以下のように同期メソッドを定義しました。WCFサービスインターフェイスで同期または非同期を実装する方法を回避する方法
[ServiceContract]
public interface IMarketingCampaignType
{
[OperationContract]
List<MarketingCampaignTypeData> GetAllCampaignTypes();
[OperationContract]
MarketingCampaignTypeData GetCampaignTypeByID(int CampaignTypeID);
[OperationContract]
MarketingCampaignTypeData CreateNewCampaignType();
[OperationContract]
MarketingCampaignTypeData EditCampaignType();
[OperationContract]
bool DeleteCampaignType();
}
今すぐクライアント側で私はプロジェクトの下Visual Studioで「サービス参照の追加]を選択して、このサービスを構成する場合、インターフェイスは「App.Client.Proxies.MarketingCampaignTypeServiceRef」
が、ときに私の名前空間の下に生成されますこのインターフェイスを実装しています。私は、それぞれの実装で同期とその他の非同期の各メソッドの2つを取得しています。私はクライアントであなたが実装したいものを選択するだけですが、私の質問は私が許可しているものを制御できるか、2つではなく1つのタイプのメソッドを持つことができますか?ここ
が
public class MarketingCampaignTypeClient : IMarketingCampaignType
{
public MarketingCampaignTypeData CreateNewCampaignType()
{
throw new NotImplementedException();
}
public Task<MarketingCampaignTypeData> CreateNewCampaignTypeAsync()
{
throw new NotImplementedException();
}
public bool DeleteCampaignType()
{
throw new NotImplementedException();
}
public Task<bool> DeleteCampaignTypeAsync()
{
throw new NotImplementedException();
}
public MarketingCampaignTypeData EditCampaignType()
{
throw new NotImplementedException();
}
public Task<MarketingCampaignTypeData> EditCampaignTypeAsync()
{
throw new NotImplementedException();
}
public MarketingCampaignTypeData[] GetAllCampaignTypes()
{
throw new NotImplementedException();
}
public Task<MarketingCampaignTypeData[]> GetAllCampaignTypesAsync()
{
throw new NotImplementedException();
}
public MarketingCampaignTypeData GetCampaignTypeByID(int CampaignTypeID)
{
throw new NotImplementedException();
}
public Task<MarketingCampaignTypeData> GetCampaignTypeByIDAsync(int CampaignTypeID)
{
throw new NotImplementedException();
}
えっ?なぜそれらを実装したいのですか? Visual Studioによって自動的に実装されます。 – nvoigt
私はインターフェイスを実装する必要はないと私は選択できるが、私はコードをきれいに保つことを望んでいることを認識しています。それぞれの2つのメソッドを提供するためにインターフェイスをサービスしないか、このシナリオに近づけるより良い方法があります。 – toxic