Métodos de interfaz de acceso sin referir a la clase.
Digamos que tengo una interfaz como esta en un proyecto llamado "Interfaz":
public interface TestInterface
{
string Operation();
}
y la clase que lo implementa. Esta clase está ubicada en otro proyecto "Clase":
public class TestClass : TestInterface
{
public TestClass() { }
public string Operation()
{
return "This is an Operation";
}
}
Mi cliente hace algo como esto (que está de nuevo en un proyecto diferente "Cliente"):
class Program
{
static void Main(string[] args)
{
TestInterface i = new TestClass();
i.Operation();
}
}
Mi pregunta está relacionada con esta línea:
TestInterface i = new TestClass();
Al agregar esta línea, me veo obligado a agregar referencias a los proyectos "Interfaz" y "Clase" de mi proyecto "Cliente". Entonces, ¿por qué todo este alboroto? ¿No puedo referirme directamente a la "Clase" sin mantener la "Interfaz" en el medio? ¿Hay alguna forma de acceder a los métodos solo a través de la interfaz (sin hacer una referencia a la clase de implementación)? ¿Me estoy perdiendo de algo?