Mavrikii
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору AnTul Цитата: 'InventoryRepo": тип, использованный в операторе using, должен иметь неявное преобразование в System.IDisposable | тоже все ясно написано. аргументом using должен быть объект класса IDisposable https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/keywords/using-statement или иметь неявный метод его преобразования в IDisposable https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/language-specification/statements#the-using-statement Цитата: Объект ресурсов — это класс или структура, реализующие System.IDisposable, который включает один метод без параметров, с именем Dispose. Код, использующий ресурс может вызвать Dispose для указания, что ресурс больше не нужен. Если Dispose не вызывается, то автоматически со временем возникает в результате сборки мусора. | система будет пытаться вызывать ((IDisposable)InventoryRepo).Dispose();, но не сможет ps: https://www.codeproject.com/Articles/15360/Implementing-IDisposable-and-the-Dispose-Pattern-P pps: ну а ваша проблема, что вы неправильно читаете книгу. Код: public abstract class BaseRepo : IDisposable { protected AutoLotEntities Context { get; } = new AutoLotEntities(); bool disposed = false; public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (disposed) return; if (disposing) { Context.Dispose(); } disposed = true; } } | это должно быть не отдельное описание, а добавка к public abstract class BaseRepo<T> where T : class, new() вы же хотите, чтобы IDisposable был у того класса, что вы используете. как и говорил, я не программлю на C#, но скорее всего должно быть как Код: public abstract class BaseRepo<T> : IDisposable where T : class, new() | и в код добавляете то, чего не хватает (метод Dispose и атрибут disposed) | Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 23:04 06-03-2019 | Исправлено: Mavrikii, 00:21 07-03-2019 |
|