2009-08-12 5 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; 
     } 
    } 
} 

C'est ce programme.C# se plaint qu'une méthode d'interface n'est pas implémentée

Ici, vous ne pouvez pas trouver de signature erronée.

+2

message d'erreur ne peut pas être plus clair: « SafetypadDAL.T_INCIDENT_SelectFactory » ne met pas en oeuvre un membre d'interface « RepositoryFactory.Interface.ISelectionFactory

+0

En d'autres termes, vous pouvez penser que vous implémentait la méthode correcte, mais vous n'avez pas. Vérifiez soigneusement que votre méthode prend les bons types de paramètres et que vous avez orthographié correctement le nom de la méthode. –

+0

les signatures sont correctes. – Partha

Répondre

1

Vous ne l'avez pas implémenté. Postez la partie pertinente du code, si vous le souhaitez. Vous pouvez probablement demander à votre IDE de tenter l'implémentation pour vous, juste pour obtenir la signature exacte.

+0

J'ai édité mes questions. voir s'il vous plaît – Partha

4

Vous avez peut-être implémenté une méthode appelée ConstructSelectCommand mais avec la mauvaise signature, elle ne correspond donc pas à la méthode. Si vous utilisez VS2005 ou une version ultérieure, cliquez sur le nom de l'interface dans votre déclaration de classe et appuyez sur Ctrl et point (point). Il vous proposera de générer les talons de méthode pour vous.

Si vous pensez vraiment, vraiment que vous avez fait la bonne chose, s'il vous plaît poster votre déclaration de cette méthode. Êtes-vous sûr de l'avoir rendu public, par exemple? (Ou implémenté l'interface explicitement, bien sûr.)

EDIT: Est-il possible que Database dans les deux signatures se réfèrent à différents types? Que se passe-t-il si vous essayez ce que j'ai suggéré pour que Visual Studio génère le stub?

+0

J'ai édité mes questions. voir s'il vous plaît – Partha

+0

En fait, j'avais généré la signature en utilisant Visual Studio Intelligence seulement. – Partha

+0

Hmm ... généralement Visual Studio utilise les noms complets des types (y compris l'espace de noms). Avez-vous supprimé l'espace de noms vous-même? Si vous passez la souris sur "Base de données", quel type montre-t-il? –

Questions connexes