| | |
| | | using WIDESEAWCS_S7Simulator.Core.Interfaces; |
| | | using WIDESEAWCS_S7Simulator.Core.Manager; |
| | | using WIDESEAWCS_S7Simulator.Core.Persistence; |
| | | using WIDESEAWCS_S7Simulator.Core.Memory; |
| | | using WIDESEAWCS_S7Simulator.Core.Entities; |
| | | |
| | | var builder = WebApplication.CreateBuilder(args); |
| | | |
| | | // Add services to the container. |
| | | |
| | | builder.Services.AddControllers(); |
| | | // 添加 CORS 支持(允许前后端分离) |
| | | builder.Services.AddCors(options => |
| | | { |
| | | options.AddPolicy("AllowAll", policy => |
| | | { |
| | | policy.AllowAnyOrigin() |
| | | .AllowAnyMethod() |
| | | .AllowAnyHeader() |
| | | .AllowCredentials(); |
| | | }); |
| | | }); |
| | | |
| | | builder.Services.AddControllers() |
| | | .AddJsonOptions(options => |
| | | { |
| | | options.JsonSerializerOptions.PropertyNamingPolicy = System.Text.Json.JsonNamingPolicy.CamelCase; |
| | | }); |
| | | // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle |
| | | builder.Services.AddEndpointsApiExplorer(); |
| | | builder.Services.AddSwaggerGen(); |
| | | |
| | | // Register core services |
| | | builder.Services.AddSingleton<ISimulatorInstanceManager, SimulatorInstanceManager>(); |
| | | |
| | | // Get content root path for data directory |
| | | var contentRoot = builder.Environment.ContentRootPath; |
| | | var dataPath = Path.Combine(contentRoot, "Data"); |
| | | |
| | | builder.Services.AddSingleton<IPersistenceService>(sp => new FilePersistenceService(dataPath)); |
| | | builder.Services.AddSingleton<IMemoryStore>(sp => |
| | | { |
| | | var config = new MemoryRegionConfig(); |
| | | return new MemoryStore(config); |
| | | }); |
| | | |
| | | var app = builder.Build(); |
| | | |
| | |
| | | |
| | | app.UseHttpsRedirection(); |
| | | |
| | | app.UseCors("AllowAll"); // 启用 CORS |
| | | |
| | | app.UseAuthorization(); |
| | | |
| | | app.MapControllers(); |