Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: Lifetime Description Use Case Example Transient New instance every time Lightweight stateless services Scoped One instance per request Database context, UoW Singleto One instance for the app's lifetime Logg…
Short answer: Lower order executes first on entry but last on exit—like nested layers. Real-world example (ShopNest) A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rul…
Short answer: public void ConfigureServices(IServiceCollection services) { services.AddTransient<IMyService, MyService>(); services.AddScoped<IRepository, Repository>(); services.AddSingleton<ILoggerServic…
Short answer: Use a mocked HttpContext and assert on changes. Real-world example (ShopNest) ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.…
Short answer: Controllers: Constructor injection Razor Pages: Constructor injection in PageModel Middleware: Inject via constructor or use IApplicationBuilder.ApplicationServices Real-world example (ShopNest) ShopNest pi…
Short answer: Use [SkipFilter] custom attribute or exclude via filter predicates. Real-world example (ShopNest) A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for…
Short answer: Constructor Injection: Supported and preferred in ASP.NET Core. Property Injection: Not supported natively in built-in DI; can be achieved via custom logic or 3rd-party containers. ✅ Use constructor injecti…
Short answer: No. But middleware can replace some filter use cases. Say this in the interview Define — one clear sentence (the short answer above). Example — relate it to a project like ShopNest or your real work. Trade-…
Short answer: IServiceProvider: Resolves services manually. IServiceScopeFactory: Creates a new DI scope (useful for background tasks). using (var scope = serviceScopeFactory.CreateScope()) Example code { var scopedServi…
Short answer: Middleware logs incoming requests; action filter logs controller-level execution. Real-world example (ShopNest) ShopNest pipeline order matters: exception handling → HTTPS → auth → authorization → endpoints…
Short answer: Scoped services are tied to the HTTP request lifecycle. In background tasks, you must manually create a scope using IServiceScopeFactory to resolve scoped services safely. Real-world example (ShopNest) Shop…
Short answer: Mixing sync &amp; async can cause deadlocks. Prefer async filters. Real-world example (ShopNest) A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule…
Short answer: To replace: services.AddSingleton<IService, CustomImplementation>(); To remove: var descriptor = services.First(x => x.ServiceType == typeof(IMyService)); services.Remove(descriptor); Real-world ex…
Short answer: Yes—but avoid heavy operations that run per action. Real-world example (ShopNest) ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading b…
Short answer: IOptionsMonitor) IOptions<T>: For singleton/config services. IOptionsSnapshot<T>: Scoped; updates per request. IOptionsMonitor<T>: Singleton; can react to config changes. services.Configur…
Short answer: Use IOptions or DI into constructor. Real-world example (ShopNest) A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller. Say this in…
Short answer: there Use IHostedService or BackgroundService for tasks that run in the background. Services are injected via constructor. Scoped services must use IServiceScopeFactory. Real-world example (ShopNest) ShopNe…
Short answer: When exceptions must be caught outside MVC (e.g., authorization failures). Say this in the interview Define — one clear sentence (the short answer above). Example — relate it to a project like ShopNest or y…
Short answer: IConfiguration is automatically registered and injected via constructor. public MyService(IConfiguration config) Example code { var key = config["MyKey"]; } Real-world example (ShopNest) A ShopNes…
Short answer: dd custom validation and authorization filters using .AddEndpointFilter(). Real-world example (ShopNest) A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same r…
Short answer: ASP.NET Core provides structured logging via ILogger<T>. public class MyService Example code { private readonly ILogger<MyService> _logger; public MyService(ILogger<MyService> logger) =>…
Short answer: Yes—result filters can wrap or modify responses. Real-world example (ShopNest) A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.…
Short answer: Occurs when two services depend on each other directly or indirectly. 🛠 Fix: Refactor to remove circular reference Use Lazy<T> or factory injection Split responsibilities Real-world example (ShopNest…
Short answer: A filter that tracks performance of controller actions: public class ProfilingFilter : IAsyncActionFilter Example code { public async Task OnActionExecutionAsync( ActionExecutingContext context, ActionExecu…
Short answer: Use a mocking framework like Moq: var mockService = new Mock<IMyService>(); mockService.Setup(s => s.Get()).Returns("test"); var controller = new MyController(mockService.Object); Mocking…
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Lifetime Description Use Case Example Transient New instance every time Lightweight stateless services Scoped One instance per request Database context, UoW Singleto One instance for the app's lifetime Logging, Config access
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Lower order executes first on entry but last on exit—like nested layers.
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: public void ConfigureServices(IServiceCollection services) { services.AddTransient<IMyService, MyService>(); services.AddScoped<IRepository, Repository>(); services.AddSingleton<ILoggerService, LoggerService>(); }
public void ConfigureServices(IServiceCollection services)
{ services.AddTransient<IMyService, MyService>(); services.AddScoped<IRepository, Repository>(); services.AddSingleton<ILoggerService, LoggerService>(); }
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Use a mocked HttpContext and assert on changes.
ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Controllers: Constructor injection Razor Pages: Constructor injection in PageModel Middleware: Inject via constructor or use IApplicationBuilder.ApplicationServices
ShopNest pipeline order matters: exception handling → HTTPS → auth → authorization → endpoints. Auth must run before protected APIs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Use [SkipFilter] custom attribute or exclude via filter predicates.
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Constructor Injection: Supported and preferred in ASP.NET Core. Property Injection: Not supported natively in built-in DI; can be achieved via custom logic or 3rd-party containers. ✅ Use constructor injection for immutability and clarity.
Constructor Injection: Supported and preferred in ASP.NET Core. Property Injection: Not supported natively in built-in DI; can be achieved via custom logic or 3rd-party containers. ✅ Use constructor injection for immutability and clarity.
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: No. But middleware can replace some filter use cases.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: IServiceProvider: Resolves services manually. IServiceScopeFactory: Creates a new DI scope (useful for background tasks). using (var scope = serviceScopeFactory.CreateScope())
{
var scopedService = scope.ServiceProvider.GetRequiredService<IMyScopedService>(); }
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Middleware logs incoming requests; action filter logs controller-level execution.
ShopNest pipeline order matters: exception handling → HTTPS → auth → authorization → endpoints. Auth must run before protected APIs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Scoped services are tied to the HTTP request lifecycle. In background tasks, you must manually create a scope using IServiceScopeFactory to resolve scoped services safely.
ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Mixing sync & async can cause deadlocks. Prefer async filters.
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: To replace: services.AddSingleton<IService, CustomImplementation>(); To remove: var descriptor = services.First(x => x.ServiceType == typeof(IMyService)); services.Remove(descriptor);
ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Yes—but avoid heavy operations that run per action.
ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: IOptionsMonitor) IOptions<T>: For singleton/config services. IOptionsSnapshot<T>: Scoped; updates per request. IOptionsMonitor<T>: Singleton; can react to config changes. services.Configure<MySettings>(Configuration.GetSection("MySettings" ));
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Use IOptions or DI into constructor.
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: there Use IHostedService or BackgroundService for tasks that run in the background. Services are injected via constructor. Scoped services must use IServiceScopeFactory.
ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: When exceptions must be caught outside MVC (e.g., authorization failures).
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: IConfiguration is automatically registered and injected via constructor. public MyService(IConfiguration config)
{
var key = config["MyKey"];
}
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: dd custom validation and authorization filters using .AddEndpointFilter().
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: ASP.NET Core provides structured logging via ILogger<T>. public class MyService
{
private readonly ILogger<MyService> _logger;
public MyService(ILogger<MyService> logger) => _logger = logger;
public void DoSomething() => _logger.LogInformation("Action performed"); }
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Yes—result filters can wrap or modify responses.
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Occurs when two services depend on each other directly or indirectly. 🛠 Fix: Refactor to remove circular reference Use Lazy<T> or factory injection Split responsibilities
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: A filter that tracks performance of controller actions: public class ProfilingFilter : IAsyncActionFilter
{
public async Task OnActionExecutionAsync( ActionExecutingContext context, ActionExecutionDelegate next) {
var sw = Stopwatch.StartNew();
var result = await next(); sw.Stop(); Console.WriteLine($"Action took {sw.ElapsedMilliseconds}ms"); }
}
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Use a mocking framework like Moq: var mockService = new Mock<IMyService>(); mockService.Setup(s => s.Get()).Returns("test"); var controller = new MyController(mockService.Object); Mocking helps isolate the unit of work and test behavior independently. MVC & Razor Pages
Use a mocking framework like Moq: var mockService = new Mock<IMyService>();
mockService.Setup(s => s.Get()).Returns("test");
var controller = new MyController(mockService.Object); Mocking helps isolate the unit of work and test behavior independently. MVC & Razor Pages
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
Install Toolliyo like an app Free
Home-screen access to tutorials, coding practice & career tools — no app store needed.
On iPhone/iPad: tap Share then Add to Home Screen.