2016-06-29 8 views
1

Ich habe WCF-Dienste implementiert, ich habe Synchronisierungsmethode wie folgt definiert;wie in WCF-Dienstschnittstelle zur Implementierung entweder synchron oder asynchron zu vermeiden Methode

[ServiceContract] 
public interface IMarketingCampaignType 
{ 
    [OperationContract] 
    List<MarketingCampaignTypeData> GetAllCampaignTypes(); 

    [OperationContract] 
    MarketingCampaignTypeData GetCampaignTypeByID(int CampaignTypeID); 

    [OperationContract] 
    MarketingCampaignTypeData CreateNewCampaignType(); 

    [OperationContract] 
    MarketingCampaignTypeData EditCampaignType(); 

    [OperationContract] 
    bool DeleteCampaignType(); 
} 

Jetzt auf Client-Seite, wenn ich diesen Dienst so konfigurieren, die von ‚Dienstverweis hinzufügen‘ in Visual Studio unter Projekt entschieden, Schnittstelle

unter Namespace ‚App.Client.Proxies.MarketingCampaignTypeServiceRef‘ erzeugt

aber wenn ich Ich implementiere diese Schnittstelle Ich bekomme zwei von jeder Methode für jede Implementierung eine synchrone und andere asynchrone. Ich weiß, dass im Client nur Sie wählen, welche Sie implementieren möchten, aber meine Frage kann ich steuern, welche ich erlaube oder nur eine Art von Methode anstelle von zwei?

hier ist Interface-Implementierung von Service

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(); 
    } 
+0

Huh? Warum möchten Sie sie implementieren? Sie werden von Visual Studio automatisch implementiert. – nvoigt

+0

Ich bin mir bewusst, dass ich keine Schnittstelle implementieren muss und ich kann wählen, aber ich mag Code sauber zu halten und dass der Grund, warum ich nicht Schnittstelle zwei Methoden von jedem zu geben oder gibt es eine bessere Möglichkeit, dieses Szenario – toxic

Antwort

1

Vergewissern Sie sich, haben Sie dies in Ihrem ServiceConfig ungeprüft:

Disable async

+0

zu nähern vielen dank, das gibt mir lösung – toxic