Skip to content

Commit df0776b

Browse files
author
Jeff Treuting
committed
ConfigurationBasedRepository and Autofac extensions
Made ConfigurationBasedRepository constructors public so they could be used directly by Autofac generic bindings.
1 parent 8b98203 commit df0776b

2 files changed

Lines changed: 17 additions & 10 deletions

File tree

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
1-
using System;
1+
using System.Collections.Generic;
22
using Autofac;
3-
using SharpRepository.Repository.Configuration;
3+
using Autofac.Core;
4+
using SharpRepository.Repository;
45

56
namespace SharpRepository.Ioc.Autofac
67
{
78
public static class AutofacExtensions
89
{
910
public static void RegisterSharpRepository(this ContainerBuilder container, string repositoryName = null)
1011
{
11-
throw new NotImplementedException();
12-
//container.RegisterGeneric(typeof (ConfigurationBasedRepository<,>)).As(typeof (IRepository<,>));
12+
container.RegisterGeneric(typeof (ConfigurationBasedRepository<,>))
13+
.As(typeof (IRepository<,>))
14+
.WithParameter("repositoryName", repositoryName)
15+
;
1316
}
1417

15-
public static void RegisterSharpRepository(this ContainerBuilder container, ISharpRepositoryConfiguration configuration)
18+
public static void RegisterSharpRepository(this ContainerBuilder container, string configSection, string repositoryName)
1619
{
17-
throw new NotImplementedException();
18-
//container.RegisterGeneric(typeof (ConfigurationBasedRepository<,>)).As(typeof (IRepository<,>));
20+
container.RegisterGeneric(typeof (ConfigurationBasedRepository<,>))
21+
.As(typeof (IRepository<,>))
22+
.WithParameters(new List<Parameter>()
23+
{
24+
new NamedParameter("configSection", configSection),
25+
new NamedParameter("repositoryName", repositoryName)
26+
});
1927
}
2028
}
2129
}

SharpRepository.Repository/ConfigurationBasedRepository.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,14 @@ namespace SharpRepository.Repository
1919
{
2020
protected readonly IRepository<T, TKey> Repository;
2121

22-
// protected constructors so user can't instantiate directly
2322
// we have 2 constructors so you can use the defualt sharpRepository section or specify a config section
2423
// you can also provide the repository name from the config file instead of whatever the default is if needed
25-
protected ConfigurationBasedRepository(string configSection, string repositoryName)
24+
public ConfigurationBasedRepository(string configSection, string repositoryName)
2625
{
2726
Repository = RepositoryFactory.GetInstance<T, TKey>(configSection, repositoryName);
2827
}
2928

30-
protected ConfigurationBasedRepository(string repositoryName = null)
29+
public ConfigurationBasedRepository(string repositoryName = null)
3130
{
3231
// Load up the repository based on the default configuration file
3332
Repository = RepositoryFactory.GetInstance<T, TKey>(repositoryName);

0 commit comments

Comments
 (0)