У меня есть следующая иерархия наследования:Наследование интерфейса с 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>
{
}
И этот код:
var adrs = new Address[]{
new Address{Name="Office"}
};
using (IAddressRepository adrr = new AddressRepository())
foreach (var a in adrs)
adrr.Add(a);
Однако этот код не компилируется. Это дает мне сообщение об ошибке:
Error 43
'Interfaces.IAddressRepository': type used in a using statement must be
implicitly convertible to 'System.IDisposable'
Однако, головной IAddressRepository
наследуется от IDisposable
.
Что здесь происходит? Как сделать компиляцию кода?
Я не могу воспроизвести это –
Можем ли мы увидеть ваш класс «AddressRepository» - это должно работать, если оно выполняется правильно (хотя другая ошибка должна произойти, если это не так!). –
Можете ли вы показать определение AddressRepository? Прямо сейчас, вы только показываете IAddressRepository. – mbeckish