Я делаю API, и я делаю вызовы API.Я создал хранилище с именем IPartnerRepository
Когда я запускаю мой вызов, он выдает ошибку nullexception.Когда я отлаживаю свой код, я вижу, что IPartnerRepository
равно нулю.Моя визуальная студия не показывает никаких ошибок или опечаток.Почему моя программа не может найти этот репозиторий?Почему это ноль?
Это мой код:
public IPartnerRepository PartnerRepository { get; set; } // = null
[RequiresAnyRole(Roles.superadmin, Roles.admin)]
public async Task<PartnerListResponse> Get(PartnerListRequest request)
{
var items = await PartnerRepository.GetAllAsync();
return new PartnerListResponse
{
Items = items
};
}
IPartnerRepository
using System;
using DTO = Ringdesk.Api.ServiceModel.DTO;
namespace Ringdesk.Api.ServiceModel.Interfaces
{
public interface IPartnerRepository : IDtoRepository<DTO.Partner,
DTO.PartnerForInsert, DTO.PartnerForUpdate>
{
}
}
Partner.cs
using ServiceStack.Model;
using Ringdesk.Api.ServiceModel.Attributes;
namespace Ringdesk.Api.ServiceModel.DTO
{
public class Partner : IHasId<int>
{
public int Id { get; set; }
public string Guid { get; set; }
[PropertyValue("name")]
public string Name { get; set; }
}
public class PartnerForUpdate : IHasId<int>
{
public int Id { get; set; }
public string Name { get; set; }
}
public class PartnerForInsert
{
public string Name { get; set; }
}
}
Startup.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using ServiceStack;
using Ringdesk.Api.Web.Jobs;
using NLog.Extensions.Logging;
using NLog.Web;
namespace Ringdesk.Api.Web
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddOrchardCms();
//services.AddMvc();
}
public class StartupSettings
{
public bool RunJobs { get; set; }
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime lifetime)
{
var startupSettings = Configuration.GetSection("startupSettings").Get<StartupSettings>();
if (startupSettings == null || startupSettings.RunJobs)
{
var quartz = new QuartzSetup();
lifetime.ApplicationStarted.Register(quartz.Start);
lifetime.ApplicationStopping.Register(quartz.Stop);
}
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddNLog();
env.ConfigureNLog("nlog.config");
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
var appSettings = new NetCoreAppSettings(Configuration);
app.UseServiceStack(new AppHost(appSettings));
app.UseOrchardCore();
//app.UseMvc(routes =>
// {
// routes.MapRoute(
// name: "default",
// template: "{controller=Home}/{action=Index}/{id?}");
// });
}
}
}