estoy teniendo una interfaz genérica como:¿Cómo se definen los métodos de extensión para la clase genérica?
public IRepository<T>
{
void Add(T entity);
}
y una clase como:
public class Repository<T>:IRepository<T>
{
void Add(T entity)
{ //Some Implementation
}
}
Ahora quiero hacer un método de extensión de la interfaz anterior. Hice la siguiente clase:
public static class RepositoryExtension
{
public static void Add(this IRepository<T> dataAccessRepository, T entity, string additionalValue)
{
//Some Implementation
}
}
Pero me sale un error en la extensión Agregar método. No reconoce el tipo 'T' que he pasado a IRepository. No puedo pasar este tipo a mi clase de métodos de extensión, por ejemplo, RepositoryExtension < T>. Por favor guía de la manera apropiada.
Pero en este caso Siempre que llame a este método de extensión, pasaría este Tipo. Ahora mismo me gusta: IRepository < Employee > employeRepository = new Repository < Employee >(); employeeRepository.Add (entidad); Pero en el caso de que sugiriera que pasaría el tipo a El método de extensión también como: employeeRepository < Employee > (entidad, "someValue"); –
¿Lo has probado? C# y .Net averiguarán el tipo basado en el tipo de IRepository – Rohith
Sí, lo probé y funcionó. Muchas gracias Rohith por tu ayuda. Estaba haciendo exactamente lo mismo, pero también estaba pasando el Tipo cuando estaba llamando al método. Lo intenté sin pasar el tipo 'T' y .Net averigué :) Muchas gracias –