I use the context service as a singletone in the app. What do you think, is this a good way to initialize and use context the way like this (see below) is it better just to use it as disposable? See examples below and write the comments
1. Check if the context doesn't exist and to create it
public ClientContext GetContext(string url)
{
if (_clientContext == null) {
AuthenticationManager authManager = new AuthenticationManager(
_tenantConfig.ClientId,
_tenantConfig.Certificate,
_tenantConfig.TenantId);
_clientContext = authManager.GetContext(url);
}
return _clientContext;
}
2. Make it disposable
public async Task<ClientContext> CreateContextAsync(string url)
{
var authManager = new AuthenticationManager(
_tenantConfig.ClientId,
_tenantConfig.Certificate,
_tenantConfig.TenantId);
return await authManager.GetContextAsync(url);
}

Azure.RequestFailedException when start App in Visual Studio
Determine the first and last days of a quarter with Day.js
Login as another user in SharePoint 2019 on-premises site in Chrome