public class MyBackgroundService : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
Console.WriteLine("Running...");
await Task.Delay(1000, stoppingToken);
}
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddHostedService();
} public class CustomMiddleware
{
private readonly RequestDelegate _next;
public CustomMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
await context.Response.WriteAsync("Custom Middleware\n");
await _next(context);
}
}
public static class CustomMiddlewareExtensions
{
public static IApplicationBuilder UseCustomMiddleware(this IApplicationBuilder builder)
{
return builder.UseMiddleware();
}
}
// Usage
app.UseCustomMiddleware(); public class CustomActionFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context) => Console.WriteLine("Before action");
public void OnActionExecuted(ActionExecutedContext context) => Console.WriteLine("After action");
}
[CustomActionFilter]
public class MyController : ControllerBase
{
[HttpGet]
public IActionResult Get() => Ok("Test");
}public void Configure(IApplicationBuilder app)
{
app.Use(async (context, next) =>
{
await context.Response.WriteAsync("Start\n");
await next();
});
app.Run(async context => await context.Response.WriteAsync("End\n"));
}// MVC Controller
public class HomeController : Controller
{
public IActionResult Index() => View();
}
// Razor Page
@page
@model IndexModel
Hello, Razor Pages!
public class IndexModel : PageModel
{
public void OnGet() { }
}Strengthen your fundamentals with topic-wise MCQs designed to sharpen accuracy and speed.
public class CustomValidationAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value is string s && s.Length > 10)
return new ValidationResult("String too long");
return ValidationResult.Success;
}
}
public class MyModel
{
[CustomValidation]
public string Name { get; set; }
}
public class MyController : Controller
{
[HttpPost]
public IActionResult Create(MyModel model)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
return Ok();
}
}public class MyController : ControllerBase
{
private readonly ILogger _logger;
public MyController(ILogger logger)
{
_logger = logger;
}
[HttpGet]
public IActionResult Get()
{
_logger.LogInformation("Request received");
return Ok();
}
}
// Program.cs
builder.Services.AddLogging(logging => logging.AddConsole()); // Endpoint Routing
app.UseRouting();
app.UseEndpoints(endpoints => endpoints.MapControllers());
// Conventional Routing
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});// appsettings.Development.json
{
"Settings": {
"Mode": "Dev"
}
}
public class MyController : ControllerBase
{
private readonly IConfiguration _config;
public MyController(IConfiguration config)
{
_config = config;
}
[HttpGet]
public IActionResult Get() => Ok(_config["Settings:Mode"]);
}public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "MyIssuer",
ValidAudience = "MyAudience",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("my-secret-key"))
};
});
}
public void Configure(IApplicationBuilder app)
{
app.UseAuthentication();
app.UseAuthorization();
}Paste your JD to get company insights, required skills, expected questions, and a personalized prep plan.
// Middleware
app.Use(async (context, next) =>
{
await next();
});
// Filter
public class CustomFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context) { }
public void OnActionExecuted(ActionExecutedContext context) { }
}public void ConfigureServices(IServiceCollection services)
{
services.AddAuthorization(options =>
{
options.AddPolicy("AdminOnly", policy => policy.RequireRole("Admin"));
});
}
public class MyController : ControllerBase
{
[Authorize(Policy = "AdminOnly")]
[HttpGet]
public IActionResult Get() => Ok("Admin access");
}public class MySettings
{
public string ApiKey { get; set; }
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure(Configuration.GetSection("MySettings"));
}
public class MyController : ControllerBase
{
private readonly MySettings _settings;
public MyController(IOptions options)
{
_settings = options.Value;
}
[HttpGet]
public IActionResult Get() => Ok(_settings.ApiKey);
} public interface IMyService { string GetData(); }
public class MyService : IMyService { public string GetData() => "Data"; }
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped();
}
public class MyController : ControllerBase
{
private readonly IMyService _service;
public MyController(IMyService service) => _service = service;
[HttpGet]
public IActionResult Get() => Ok(_service.GetData());
} public void ConfigureServices(IServiceCollection services)
{
services.AddApiVersioning(options =>
{
options.AssumeDefaultVersionWhenUnspecified = true;
options.DefaultApiVersion = new ApiVersion(1, 0);
options.ReportApiVersions = true;
});
}
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
[ApiVersion("1.0")]
public class ProductsController : ControllerBase
{
[HttpGet]
public IActionResult Get() => Ok("Version 1");
}Practice with expert evaluators and receive detailed feedback to improve instantly.
// API Controller
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
[HttpGet]
public IActionResult Get() => Ok(new[] { "Product1", "Product2" });
}
// Consuming with HttpClient
public async Task GetProducts(HttpClient client)
{
return await client.GetFromJsonAsync("api/products");
} public void ConfigureServices(IServiceCollection services)
{
services.AddHttpClient("MyApi", client =>
{
client.BaseAddress = new Uri("https://api.example.com/");
});
}
public class MyService
{
private readonly HttpClient _client;
public MyService(IHttpClientFactory factory)
{
_client = factory.CreateClient("MyApi");
}
public async Task GetData() => await _client.GetStringAsync("/data");
} // Unit Test with Moq
public class MyServiceTests
{
[Fact]
public void GetData_ReturnsData()
{
var mockService = new Mock();
mockService.Setup(s => s.GetData()).Returns("Test");
var controller = new MyController(mockService.Object);
var result = controller.Get();
Assert.Equal("Test", ((OkObjectResult)result).Value);
}
}
// Integration Test
public class MyControllerTests : IClassFixture>
{
private readonly WebApplicationFactory _factory;
public MyControllerTests(WebApplicationFactory factory) => _factory = factory;
[Fact]
public async Task Get_ReturnsData()
{
var client = _factory.CreateClient();
var response = await client.GetStringAsync("/api/my");
Assert.Equal("Test", response);
}
} public class MySettings
{
public string Value { get; set; }
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure(Configuration.GetSection("MySettings"));
}
public class MyController : ControllerBase
{
private readonly MySettings _settings;
public MyController(IOptionsSnapshot options)
{
_settings = options.Value;
}
[HttpGet]
public IActionResult Get() => Ok(_settings.Value);
} var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello, Minimal API!");
app.MapPost("/data", (MyModel model) => $"Received {model.Name}");
app.Run();
public class MyModel
{
public string Name { get; set; }
}Strengthen your fundamentals with topic-wise MCQs designed to sharpen accuracy and speed.
app.UseExceptionHandler(errorApp =>
{
errorApp.Run(async context =>
{
var error = context.Features.Get();
await context.Response.WriteAsync($"Error: {error.Error.Message}");
});
}); var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseKestrel();
var app = builder.Build();
app.Run();app.UseStaticFiles();
// Restrict with middleware
app.Use(async (context, next) =>
{
if (context.Request.Path.StartsWithSegments("/restricted"))
{
if (!context.User.Identity.IsAuthenticated)
{
context.Response.StatusCode = 401;
return;
}
}
await next();
});public void ConfigureServices(IServiceCollection services)
{
services.AddResponseCompression();
}
public void Configure(IApplicationBuilder app)
{
app.UseResponseCompression();
}public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("AllowSpecific", builder =>
{
builder.WithOrigins("https://example.com")
.AllowAnyMethod()
.AllowAnyHeader();
});
});
}
public void Configure(IApplicationBuilder app)
{
app.UseCors("AllowSpecific");
app.UseRouting();
app.UseEndpoints(endpoints => endpoints.MapControllers());
}Paste your JD to get company insights, required skills, expected questions, and a personalized prep plan.