Hello friends,
In our last post, we demonstrated the process of registering Vonage clients within the .NET IoC container. This was a valuable step in simplifying interactions with our SDK.
Now, let's take a moment to ponder: What if we were to take this a step further?
Where Did We Leave Off?
Just a refresher: here's how we used to register those clients:
// Initialize credentials
Credentials credentials = ...
// Register our clients with a 'Transient' lifetime...
builder.Services.AddVonageClientTransient(credentials);
// Or a 'Scoped' lifetime
builder.Services.AddVonageClientScoped(credentials);
You had to initialize a Credentials instance, typically from an ApiKey/ApiSecret pair or an ApplicationId/PrivateKey pair.
These values often came from your configuration file or were plucked from our Configuration instance.
You see where I'm going, don't you?
Implicit Configuration Loading
No more fussing about that Credentials
instance anymore.
We've taken it further and tweaked the method to accept an IConfiguration instance immediately.
// Register our clients with a 'Transient' lifetime...
builder.Services.AddVonageClientTransient(builder.Configuration);
// Or a 'Scoped' lifetime
builder.Services.AddVonageClientScoped(builder.Configuration);
Now, we handle all the heavy lifting as we'll grab all the necessary data straight from your configuration file.
Less manual work for you!
Extending With Environment-Specific Configuration
Until v6.9.0, we could only load configuration data from settings.json
or appsettings.json
.
It could be problematic if you wanted to use environment-specific values, for example, with a staging environment deployment.
You might have noticed that we are discussing loading data based on your local configuration.
What's the scoop there?
We're fetching all those crucial configuration values from sources you've loaded into your configuration builder.
For example, we can retrieve values from appsettings.{environment}.json
, the default naming convention on a new .NET application.
Signing Off
Stay tuned for more features and quality-of-life improvements.
As always, we value your feedback!
So, feel free to hit up our GitHub repository to report issues, suggest improvements, or even contribute your pull requests. If you have questions, join us on the Vonage Developer Slack, and we will get back to you.
Happy coding, and see you soon!
Top comments (0)