Ссылка на объект
В одном из моих эталонных проектов .net мне нужно было создать новую модель и соответствующий ей интерфейс, репозиторий и клиентский класс. В методе существующего класса контроллера мне нужно создать запись этого класса модели, но я не хочу использовать интерфейс этого нового класса в качестве внедрения зависимостей. Итак, чтобы вызвать метод из класса репозитория, я попытался напрямую получить доступ к методу, используя имя интерфейса или класса репозитория, например:
ITestRepository.createAsync();
Or
TestRepositoryClient.createAsync();
Здесь ITestRepository — это интерфейс, а класс TestRepositoryClient реализует интерфейс ITestRepository.
Но таким образом я получал следующую ошибку:
Для нестатического поля, метода или свойства требуется ссылка на объект.
Затем я попытался создать объект из класса интерфейса, как показано ниже:
ITestRepository myTestRepo = new ITestRepository();
Но это также дало мне следующую ошибку:
Невозможно создать экземпляр абстрактного класса или интерфейса.
Поэтому, чтобы решить эту проблему, я создал экземпляр репозитория, как показано ниже:
ITestRepository myTestRepo = new TestRepositoryClient();
И вызвал метод для этого объекта, как показано ниже:
myTestRepo.createAsync();
Итак, это способ создать экземпляр класса репозитория с использованием интерфейса.
Webner Solutions — компания по разработке программного обеспечения, специализирующаяся на разработке систем управления страховыми агентствами, систем управления обучением и приложений Salesforce. Свяжитесь с нами по адресу [email protected] для подачи заявок на страхование, электронное обучение и Salesforce.
Первоначально опубликовано на https://blog.webnersolutions.com 22 февраля 2021 г.