More

    Easy methods to use keyed providers in ASP.NET Core

    on

    |

    views

    and

    comments

    var builder = WebApplication.CreateBuilder(args);
    // Register a number of keyed providers for the ICustomLogger interface
    builder.Providers.AddKeyedScoped("file");
    builder.Providers.AddKeyedScoped("database");
    builder.Providers.AddKeyedScoped("occasion");
    var app = builder.Construct();
    

    Notice how the FileLogger, DatabaseLoggerand EventLogger providers are registered utilizing the keys "file", "database"and "occasion"respectively.

    Inject the keyed logger providers

    We will use the (FromKeyedServices) attribute to inject a particular implementation of our logger service in our minimal API endpoints as proven within the code snippet given under.

    app.MapGet("/customlogger/file", ((FromKeyedServices("file")) ICustomLogger fileLogger) =>
    {
        fileLogger.Log("This textual content is written to the file system.");
        return Outcomes.Okay("File logger executed efficiently.");
    });
    app.MapGet("/customlogger/db", ((FromKeyedServices("database")) ICustomLogger databaseLogger) =>
    {
        databaseLogger.Log("This textual content is saved within the database.");
        return Outcomes.Okay("Database logger executed efficiently.");
    });
    app.MapGet("/customlogger/occasion", ((FromKeyedServices("occasion")) ICustomLogger logger) =>
    {
        logger.Log("This textual content is recorded within the occasion system.");
        return Outcomes.Okay("Occasion logger executed efficiently.");
    });
    

    Thus, by utilizing DI and keyed providers, we are able to implement every of our logger providers as soon as, then merely ask for the fitting kind of the logger once we want one with out having to make use of a manufacturing facility to instantate the logger. And at any time when we need to swap the implementations—from FileLogger to DatabaseLoggerfor instance—all we have to do is change the configuration we specied whereas registering the providers with the container. The DI system will plug in the fitting logger robotically at run time.

    Share this
    Tags

    Must-read

    A Recap of Key Moments

    Just lately, Yeastar has gone by means of a vibrant interval full of notable occasions. Whether or not you’re curious in regards to the...

    Chrome Zero-Day Exploited to Ship Italian Memento Labs’ LeetAgent Spy ware

    The zero-day exploitation of a now-patched safety flaw in Google Chrome led to the distribution of an espionage-related instrument from Italian info know-how and...

    Reviving Dhaka’s Lifelines: How #CholoKhaalBachai# is Bringing Canals Again to Life

    For hundreds of years, water has formed the id of Bengal. Bangladesh’s rivers and canals are greater than waterways—they're lifelines for agriculture, transport, and...
    spot_img

    Recent articles

    More like this

    LEAVE A REPLY

    Please enter your comment!
    Please enter your name here