This repository has been archived by the owner on Nov 29, 2017. It is now read-only.
/
IDbDependencyResolverExtensions.cs
55 lines (49 loc) · 2.4 KB
/
IDbDependencyResolverExtensions.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
namespace System.Data.Entity.Config
{
using System.Diagnostics.Contracts;
/// <summary>
/// Extension methods to call the <see cref="IDbDependencyResolver.GetService"/> method using
/// a generic type parameter and/or no name.
/// </summary>
public static class IDbDependencyResolverExtensions
{
/// <summary>
/// Calls <see cref="IDbDependencyResolver.GetService"/> passing the generic type of the method and the given
/// name as arguments.
/// </summary>
/// <typeparam name="T">The contract type to resolve.</typeparam>
/// <param name="resolver">The resolver to use.</param>
/// <param name="name">The name of the dependency to resolve.</param>
/// <returns>The resolved dependency, or null if the resolver could not resolve it.</returns>
public static T GetService<T>(this IDbDependencyResolver resolver, string name)
{
Contract.Requires(resolver != null);
return (T)resolver.GetService(typeof(T), name);
}
/// <summary>
/// Calls <see cref="IDbDependencyResolver.GetService"/> passing the generic type of the method as
/// the type argument and null for the name argument.
/// </summary>
/// <typeparam name="T">The contract type to resolve.</typeparam>
/// <param name="resolver">The resolver to use.</param>
/// <returns>The resolved dependency, or null if the resolver could not resolve it.</returns>
public static T GetService<T>(this IDbDependencyResolver resolver)
{
Contract.Requires(resolver != null);
return (T)resolver.GetService(typeof(T), null);
}
/// <summary>
/// Calls <see cref="IDbDependencyResolver.GetService"/> passing the given type argument and using
/// null for the name argument.
/// </summary>
/// <param name="type">The contract type to resolve.</param>
/// <param name="resolver">The resolver to use.</param>
/// <returns>The resolved dependency, or null if the resolver could not resolve it.</returns>
public static object GetService(this IDbDependencyResolver resolver, Type type)
{
Contract.Requires(resolver != null);
Contract.Requires(type != null);
return resolver.GetService(type, null);
}
}
}