Skip to content

Commit 11a03d3

Browse files
committed
Add a parameterless AddEnyimMemcached method
1 parent 4426f38 commit 11a03d3

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

Enyim.Caching/Configuration/MemcachedClientConfiguration.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Enyim.Caching.Memcached.Protocol.Binary;
77
using Microsoft.Extensions.Logging;
88
using Microsoft.Extensions.Options;
9+
using Microsoft.Extensions.Configuration;
910

1011
namespace Enyim.Caching.Configuration
1112
{
@@ -26,6 +27,7 @@ public class MemcachedClientConfiguration : IMemcachedClientConfiguration
2627
public MemcachedClientConfiguration(
2728
ILoggerFactory loggerFactory,
2829
IOptions<MemcachedClientOptions> optionsAccessor,
30+
IConfiguration configuration,
2931
ITranscoder transcoder = null,
3032
IMemcachedKeyTransformer keyTransformer = null)
3133
{
@@ -37,6 +39,11 @@ public MemcachedClientConfiguration(
3739
_logger = loggerFactory.CreateLogger<MemcachedClientConfiguration>();
3840

3941
var options = optionsAccessor.Value;
42+
if(options == null || options.Servers.Count == 0)
43+
{
44+
configuration.GetSection("enyimMemcached").Bind(options);
45+
}
46+
4047
Servers = new List<EndPoint>();
4148
foreach (var server in options.Servers)
4249
{

Enyim.Caching/EnyimMemcachedServiceCollectionExtensions.cs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,17 @@ namespace Microsoft.Extensions.DependencyInjection
1111
{
1212
public static class EnyimMemcachedServiceCollectionExtensions
1313
{
14+
/// <summary>
15+
/// Add EnyimMemcached to the specified <see cref="IServiceCollection"/>.
16+
/// Read configuration via IConfiguration.GetSection("enyimMemcached")
17+
/// </summary>
18+
/// <param name="services"></param>
19+
/// <returns></returns>
20+
public static IServiceCollection AddEnyimMemcached(this IServiceCollection services)
21+
{
22+
return AddEnyimMemcachedInternal(services, null);
23+
}
24+
1425
public static IServiceCollection AddEnyimMemcached(this IServiceCollection services, Action<MemcachedClientOptions> setupAction)
1526
{
1627
if (services == null)
@@ -23,7 +34,7 @@ public static IServiceCollection AddEnyimMemcached(this IServiceCollection servi
2334
throw new ArgumentNullException(nameof(setupAction));
2435
}
2536

26-
return AddEnyimMemcached(services, s => s.Configure(setupAction));
37+
return AddEnyimMemcachedInternal(services, s => s.Configure(setupAction));
2738
}
2839

2940
public static IServiceCollection AddEnyimMemcached(this IServiceCollection services, IConfigurationSection configurationSection)
@@ -38,7 +49,7 @@ public static IServiceCollection AddEnyimMemcached(this IServiceCollection servi
3849
throw new ArgumentNullException(nameof(configurationSection));
3950
}
4051

41-
return AddEnyimMemcached(services, s => s.Configure<MemcachedClientOptions>(configurationSection));
52+
return AddEnyimMemcachedInternal(services, s => s.Configure<MemcachedClientOptions>(configurationSection));
4253
}
4354

4455
public static IServiceCollection AddEnyimMemcached(this IServiceCollection services, IConfiguration configuration, string sectionKey = "enyimMemcached")
@@ -53,13 +64,13 @@ public static IServiceCollection AddEnyimMemcached(this IServiceCollection servi
5364
throw new ArgumentNullException(nameof(configuration));
5465
}
5566

56-
return AddEnyimMemcached(services, s => s.Configure<MemcachedClientOptions>(configuration.GetSection(sectionKey)));
67+
return AddEnyimMemcachedInternal(services, s => s.Configure<MemcachedClientOptions>(configuration.GetSection(sectionKey)));
5768
}
5869

59-
private static IServiceCollection AddEnyimMemcached(IServiceCollection services, Action<IServiceCollection> configure)
70+
private static IServiceCollection AddEnyimMemcachedInternal(IServiceCollection services, Action<IServiceCollection> configure)
6071
{
6172
services.AddOptions();
62-
configure(services);
73+
configure?.Invoke(services);
6374

6475
services.TryAddSingleton<ITranscoder, DefaultTranscoder>();
6576
services.TryAddSingleton<IMemcachedKeyTransformer, DefaultKeyTransformer>();

SampleWebApp/Startup.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ public Startup(IHostingEnvironment env)
3232

3333
public void ConfigureServices(IServiceCollection services)
3434
{
35-
services.AddEnyimMemcached(Configuration);
35+
services.AddEnyimMemcached();
36+
//services.AddEnyimMemcached(Configuration);
3637
//services.AddEnyimMemcached(Configuration, "enyimMemcached");
3738
//services.AddEnyimMemcached(Configuration.GetSection("enyimMemcached"));
3839
}

0 commit comments

Comments
 (0)