Я занимаюсь разработкой и веб-приложением со службами, и для этого я разрабатываю два разных проекта, один для веб-приложения и другой для веб-API. Прямо сейчас я застрял, потому что я просто использую службы REST в своем веб-приложении, но мне нужно что-то исправить, веб-приложение должно быть независимым от веб-API, поэтому я не хочу, чтобы веб-приложение зависело от моего веб-приложения.
Так что проблема в том, что в моих файлах веб-приложений, program.cs и startup.cs я вызываю контекст из API, но я не знаю, нужны ли они мне, и теперь я остановлен, потому что мне нужно получить способ или знать, как я могу превратить веб-приложение в полностью независимую форму веб-API, но в то же время использовать сервисы из API, как у меня сейчас.
Startup.cs
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<MainContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<ApplicationUser, IdentityRole> (options => { options.User.AllowedUserNameCharacters = "ãéabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+"; options.User.RequireUniqueEmail = true; })
.AddEntityFrameworkStores<MainContext>()
.AddDefaultTokenProviders();
services.AddSingleton<IEmailSender, EmailSender>();
services.Configure<AuthMessageSenderOptions>(Configuration);
// Add application services.
services.AddTransient<IEmailSender, EmailSender>();
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider services)
{
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "HomePage" });
});
//new UserRoleSeed(services).Seed().Wait();
}
Program.cs
public static void Main(string[] args)
{
var host = BuildWebHost(args);
using (var scope = host.Services.CreateScope())
{
var services = scope.ServiceProvider;
try
{
var context = services.GetRequiredService<MainContext>();
}
catch (Exception ex)
{
var logger = services.GetRequiredService<ILogger<Program>>();
logger.LogError(ex, "An error occurred while seeding the database.");
}
}
host.Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
Буду признателен за вашу помощь, если кто-нибудь поможет мне или получит представление об этом ....