2009-08-12 8 views
1
namespace RepositoryFactory.Interface 
{ 
    public interface ISelectionFactory<TIdentityObject> 
    { 

     DbCommand ConstructSelectCommand(Database db, TIdentityObject idObject); 
    } 
} 


namespace SafetypadDAL 
{ 
    public class T_INCIDENT_SelectFactory:ISelectionFactory<T_INCIDENT> 
    { 
     public DbCommand ConstructSelectCommand(Database db, T_INCIDENT idObject) 
     { 
      //my business codes will be here 

      return command; 
     } 
    } 
} 

Dies ist das Programm.C# beschwert sich, dass eine Interface-Methode nicht implementiert ist

Hier können Sie keine falsche Signatur finden.

+2

Fehlermeldung könnte nicht deutlicher sein: ‚SafetypadDAL.T_INCIDENT_SelectFactory‘ nicht implementiert Schnittstelle Mitglied ‚RepositoryFactory.Interface.ISelectionFactory

+0

Mit anderen Worten, können Sie denken, Sie die richtige Methode implementiert, aber sie tat es nicht. Überprüfen Sie sorgfältig, ob Ihre Methode die richtigen Parametertypen verwendet und dass Sie den Methodennamen richtig geschrieben haben. –

+0

Signaturen sind korrekt. – Partha

Antwort

1

Sie haben es nicht implementiert. Veröffentlichen Sie den relevanten Teil des Codes, wenn Sie möchten. Wahrscheinlich können Sie Ihre IDE anweisen, die Implementierung für Sie zu versuchen, nur um die genaue Signatur zu erhalten.

+0

Ich habe meine Fragen bearbeitet. siehe bitte – Partha

4

Möglicherweise haben Sie eine Methode namens ConstructSelectCommand implementiert, aber mit der falschen Signatur, so dass sie nicht mit der Methode übereinstimmt.

Wenn Sie VS2005 oder höher verwenden, klicken Sie auf den Namen der Schnittstelle in Ihrer Klassendeklaration und drücken Sie Strg und Punkt (Punkt). Es bietet an, die Methodenstubs für Sie zu generieren.

Wenn Sie wirklich, wirklich denken, dass Sie das Richtige getan haben, posten Sie bitte Ihre Erklärung dieser Methode. Bist du sicher, dass du es zum Beispiel veröffentlicht hast? (Oder die Schnittstelle explizit explizit implementiert.)

EDIT: Ist es möglich, dass sich Database in den beiden Signaturen auf verschiedene Typen beziehen? Was passiert, wenn Sie versuchen, was ich vorgeschlagen habe, um Visual Studio dazu zu bringen, den Stub zu generieren?

+0

Ich habe meine Fragen bearbeitet. siehe bitte – Partha

+0

Eigentlich hatte ich die Signatur nur mit Visual Studio Intelligence generiert. – Partha

+0

Hmm ... Visual Studio verwendet normalerweise die vollständigen Namen der Typen (einschließlich Namespace). Haben Sie den Namensraum selbst entfernt? Wenn Sie den Mauszeiger über "Datenbank" bewegen, welcher Typ wird angezeigt? –

Verwandte Themen