J'essaie d'implémenter la meilleure réutilisabilité du code. Le problème est que je ne peux pas accéder à la méthode de base située dans la classe de base de résumé du programme principal à travers le référentiel.C# .NET Design Pattern numéro
Si vous parcourez l'exemple ci-dessous, vous verrez un exemple de code de ma situation. Donc, ma question est comment puis-je accéder à des méthodes situées dans la classe abstraite de base à partir du programme principal.
Classes/Interfaces
public abstract class BaseEntity
{
public override abstract String ToString();
}
public abstract class BaseClass<T> where T : BaseEntity
{
public T GetById(int id)
{
//Dummy Code
return new T();
//
}
}
public interface IFooRepository
{
IList<Foo> GetOrderedObjects();
}
public interface FooRepository : BaseClass<Foo>, IFooRepository
{
public IList<Foo> GetOrderedObjects()
{
//GetById method is accessible from the repository - Fine
var obj = this.GetById(5);
//Dummy Code
return new List<Foo>();
//
}
}
// principal App
public class void Main()
{
private IFooRepository _fooRepository;
public void ProgramStartsHere()
{
//This is ok.
var list = _fooRepository.GetOrderedObjects();
//Problem is here - GetById method is not accessible from the main program through the FooRepository
var obj = _fooRepository.GetById(10);
}
}
Etes-vous sûr que votre code est OK? Je veux dire que cette interface avec la méthode implémentée est fausse. http://msdn.microsoft.com/en-us/library/87d83y5b(v=vs.80).aspx – besworland
interface publique FooRepository: BaseClass comment cela peut-il compiler?vous ne pouvez pas dériver une interface à partir d'une classe –