Я знаю, что этот вопрос задавался довольно много раз, и я знаю причину, по которой я получаю ошибку, потому что LicenseInfoRepository
имеет значение NULL, но я не уверен, как это исправить.
public abstract class VendorCodeGeneratorBase
{
protected ILicenseInfoRepository LicenseInfoRepository;
protected ICountryRegionRepository CountryRegionRepository;
protected IEnumerable<IBrandModel> BrandModels;
protected string GenerateVendorCodeUnEncoded(GenerateVendorCodeRequestModel requestModel)
{
int formatId = requestModel.VendorCodeFormat;
var strToConvert = "";
var brandBytes = new byte[5];
var brands = LicenseInfoRepository.GetSubscriptionBrandsForVendorCode(requestModel.KeyNumber);
Ошибка происходит на линии
var brands = LicenseInfoRepository.GetSubscriptionBrandsForVendorCode(requestModel.KeyNumber);
Я не знаю, как создать экземпляр класса, реализующего интерфейс. Это класс
public class LicenseInfoRepository : ILicenseInfoRepository
{
private readonly IEstDbContext _estDbContext;
public LicenseInfoRepository(IEstDbContext estDbContext)
{
_estDbContext = estDbContext;
}
public List<VendorCodeSubscriptionBrandModel>
GetSubscriptionBrandsForVendorCode(int keyNumber)
{
return _estDbContext.SubscriptionBrands
.Include(sb => sb.Brand)
.Where(sb => sb.KeyNumber == keyNumber)
.ProjectTo<VendorCodeSubscriptionBrandModel>()
.ToList();
}
}
У меня есть папка с именем repositories, внутри которой находится класс LicenseInfoRepository.cs
, а внутри находится папка с именем Interfaces
, которая имеет интерфейс ILicenseInfoRepository.cs
. Этот интерфейс выглядит следующим образом:
namespace Data.Repositiories
{
public interface ILicenseInfoRepository
{
List<VendorCodeSubscriptionBrandModel>
GetSubscriptionBrandsForVendorCode(int keyNumber);
}
}