Tengo la siguiente jerarquía de herencia:Herencia de interfaz con IDisposable?
public interface IRepository<T> : IDisposable
{
void Add(T model);
void Update(T model);
int GetCount();
T GetById(int id);
ICollection<T> GetAll();
}
public interface IAddressRepository : IRepository<Address>
{
}
Y este código:
var adrs = new Address[]{
new Address{Name="Office"}
};
using (IAddressRepository adrr = new AddressRepository())
foreach (var a in adrs)
adrr.Add(a);
Sin embargo, este código no compila. Me da este mensaje de error:
Error 43
'Interfaces.IAddressRepository': type used in a using statement must be
implicitly convertible to 'System.IDisposable'
Sin embargo, uno de los padres de IAddressRepository
hereda de IDisposable
.
¿Qué está pasando aquí? ¿Cómo hago que compile el código?
No puedo reproducir este –
¿Podemos ver su clase 'AddressRepository'? Esto debería funcionar si se está implementando correctamente (¡aunque un error diferente debería ocurrir si no es así!). –
¿Puedes mostrar la definición de AddressRepository? En este momento, solo está mostrando IAddressRepository. – mbeckish