[ninject commit] r154 - in experiments/ninject2/src: Ninject Ninject.Tests/Integration Ninject.Tests/Unit Ninject/...

4 views
Skip to first unread message

codesite...@google.com

unread,
Feb 25, 2009, 10:28:42 AM2/25/09
to ninje...@googlegroups.com
Author: nkohari
Date: Wed Feb 25 07:05:36 2009
New Revision: 154

Modified:

experiments/ninject2/src/Ninject.Tests/Integration/CircularDependenciesTests.cs
experiments/ninject2/src/Ninject.Tests/Unit/ActivationBlockTests.cs
experiments/ninject2/src/Ninject/Activation/Blocks/ActivationBlock.cs
experiments/ninject2/src/Ninject/Activation/Hook.cs
experiments/ninject2/src/Ninject/KernelBase.cs
experiments/ninject2/src/Ninject/Planning/Targets/Target.cs
experiments/ninject2/src/Ninject/Syntax/IResolutionRoot.cs
experiments/ninject2/src/Ninject/Syntax/ResolutionExtensions.cs

Log:


Modified:
experiments/ninject2/src/Ninject.Tests/Integration/CircularDependenciesTests.cs
==============================================================================
---
experiments/ninject2/src/Ninject.Tests/Integration/CircularDependenciesTests.cs
(original)
+++
experiments/ninject2/src/Ninject.Tests/Integration/CircularDependenciesTests.cs
Wed Feb 25 07:05:36 2009
@@ -29,7 +29,7 @@
public void DoesNotThrowExceptionIfHookIsCreated()
{
var request = new Request(typeof(TwoWayConstructorFoo), null,
Enumerable.Empty<IParameter>(), null, false);
- Assert.DoesNotThrow(() =>
kernel.Resolve<TwoWayConstructorFoo>(request));
+ Assert.DoesNotThrow(() => kernel.Resolve(request));
}

[Fact]
@@ -77,7 +77,7 @@
public void DoesNotThrowExceptionIfHookIsCreated()
{
var request = new Request(typeof(ThreeWayConstructorFoo), null,
Enumerable.Empty<IParameter>(), null, false);
- Assert.DoesNotThrow(() =>
kernel.Resolve<ThreeWayConstructorFoo>(request));
+ Assert.DoesNotThrow(() => kernel.Resolve(request));
}

[Fact]

Modified:
experiments/ninject2/src/Ninject.Tests/Unit/ActivationBlockTests.cs
==============================================================================
--- experiments/ninject2/src/Ninject.Tests/Unit/ActivationBlockTests.cs
(original)
+++ experiments/ninject2/src/Ninject.Tests/Unit/ActivationBlockTests.cs Wed
Feb 25 07:05:36 2009
@@ -38,8 +38,8 @@
public void DelegatesCallToParent()
{
IRequest request = requestMock.Object;
- block.Resolve<object>(request);
- parentMock.Verify(x => x.Resolve<object>(request));
+ block.Resolve(request);
+ parentMock.Verify(x => x.Resolve(request));
}
}
}

Modified:
experiments/ninject2/src/Ninject/Activation/Blocks/ActivationBlock.cs
==============================================================================
--- experiments/ninject2/src/Ninject/Activation/Blocks/ActivationBlock.cs
(original)
+++ experiments/ninject2/src/Ninject/Activation/Blocks/ActivationBlock.cs
Wed Feb 25 07:05:36 2009
@@ -58,12 +58,11 @@
/// <summary>
/// Resolves activation hooks for the specified request.
/// </summary>
- /// <typeparam name="T">The type of object that will be returned by the
hook (not necessarily the service).</typeparam>
/// <param name="request">The request to resolve.</param>
/// <returns>A series of hooks that can be used to resolve instances
that match the request.</returns>
- public IEnumerable<Hook<T>> Resolve<T>(IRequest request)
+ public IEnumerable<Hook> Resolve(IRequest request)
{
- return Parent.Resolve<T>(request);
+ return Parent.Resolve(request);
}

/// <summary>

Modified: experiments/ninject2/src/Ninject/Activation/Hook.cs
==============================================================================
--- experiments/ninject2/src/Ninject/Activation/Hook.cs (original)
+++ experiments/ninject2/src/Ninject/Activation/Hook.cs Wed Feb 25 07:05:36
2009
@@ -23,12 +23,12 @@
/// <summary>
/// A placeholder for an instance of a service.
/// </summary>
- public class Hook<T>
+ public class Hook
{
private readonly Func<object> _callback;

/// <summary>
- /// Initializes a new instance of the <see cref="Hook&lt;T&gt;"/> class.
+ /// Initializes a new instance of the <see cref="Hook"/> class.
/// </summary>
/// <param name="callback">The callback that will be triggered to
resolve the hook's instance.</param>
public Hook(Func<object> callback)
@@ -37,7 +37,7 @@
}

/// <summary>
- /// Initializes a new instance of the <see cref="Hook&lt;T&gt;"/> class.
+ /// Initializes a new instance of the <see cref="Hook"/> class.
/// </summary>
/// <param name="instance">The instance value that will be
returned.</param>
public Hook(object instance) : this(() => instance) { }
@@ -46,9 +46,9 @@
/// Resolves the instance for the hook.
/// </summary>
/// <returns>The resolved instance.</returns>
- public T Resolve()
+ public object Resolve()
{
- return (T)_callback();
+ return _callback();
}
}
}

Modified: experiments/ninject2/src/Ninject/KernelBase.cs
==============================================================================
--- experiments/ninject2/src/Ninject/KernelBase.cs (original)
+++ experiments/ninject2/src/Ninject/KernelBase.cs Wed Feb 25 07:05:36 2009
@@ -240,18 +240,17 @@
/// <summary>
/// Resolves activation hooks for the specified request.
/// </summary>
- /// <typeparam name="T">The type of object that will be returned by the
hook (not necessarily the service).</typeparam>
/// <param name="request">The request to resolve.</param>
/// <returns>A series of hooks that can be used to resolve instances
that match the request.</returns>
- public virtual IEnumerable<Hook<T>> Resolve<T>(IRequest request)
+ public virtual IEnumerable<Hook> Resolve(IRequest request)
{
if (request.Service == typeof(IKernel))
- return new[] { new Hook<T>(this) };
+ return new[] { new Hook(this) };

if (!CanResolve(request)
&& !TryRegisterImplicitSelfBinding(request.Service))
{
if (request.IsOptional)
- return Enumerable.Empty<Hook<T>>();
+ return Enumerable.Empty<Hook>();
else
throw new
ActivationException(ExceptionFormatter.CouldNotResolveBinding(request));
}
@@ -259,7 +258,7 @@
return GetBindings(request)
.Where(binding => binding.Matches(request) && request.Matches(binding))
.Select(binding => CreateContext(request, binding))
- .Select(context => CreateHook<T>(context));
+ .Select(context => CreateHook(context));
}

/// <summary>
@@ -358,9 +357,9 @@
/// </summary>
/// <param name="context">The context.</param>
/// <returns>The created hook.</returns>
- protected virtual Hook<T> CreateHook<T>(IContext context)
+ protected virtual Hook CreateHook(IContext context)
{
- return new Hook<T>(context.Resolve);
+ return new Hook(context.Resolve);
}
}
}

Modified: experiments/ninject2/src/Ninject/Planning/Targets/Target.cs
==============================================================================
--- experiments/ninject2/src/Ninject/Planning/Targets/Target.cs (original)
+++ experiments/ninject2/src/Ninject/Planning/Targets/Target.cs Wed Feb 25
07:05:36 2009
@@ -149,7 +149,7 @@
private IEnumerable<object> ResolveInstances(Type service, IContext
parent)
{
var request = parent.Request.CreateChild(service, this);
- return parent.Kernel.Resolve<object>(request).Select(hook =>
hook.Resolve());
+ return parent.Kernel.Resolve(request).Select(hook => hook.Resolve());
}

private Func<IBindingMetadata, bool> ReadConstraintFromAttributes()

Modified: experiments/ninject2/src/Ninject/Syntax/IResolutionRoot.cs
==============================================================================
--- experiments/ninject2/src/Ninject/Syntax/IResolutionRoot.cs (original)
+++ experiments/ninject2/src/Ninject/Syntax/IResolutionRoot.cs Wed Feb 25
07:05:36 2009
@@ -39,10 +39,9 @@
/// <summary>
/// Resolves activation hooks for the specified request.
/// </summary>
- /// <typeparam name="T">The type of object that will be returned by the
hook (not necessarily the service).</typeparam>
/// <param name="request">The request to resolve.</param>
/// <returns>A series of hooks that can be used to resolve instances
that match the request.</returns>
- IEnumerable<Hook<T>> Resolve<T>(IRequest request);
+ IEnumerable<Hook> Resolve(IRequest request);

/// <summary>
/// Creates a request for the specified service.

Modified: experiments/ninject2/src/Ninject/Syntax/ResolutionExtensions.cs
==============================================================================
--- experiments/ninject2/src/Ninject/Syntax/ResolutionExtensions.cs
(original)
+++ experiments/ninject2/src/Ninject/Syntax/ResolutionExtensions.cs Wed Feb
25 07:05:36 2009
@@ -40,7 +40,7 @@
/// <returns>An instance of the service.</returns>
public static T Get<T>(this IResolutionRoot root, params IParameter[]
parameters)
{
- return GetResolutionIterator<T>(root, typeof(T), null, parameters,
false).FirstOrDefault();
+ return GetResolutionIterator(root, typeof(T), null, parameters,
false).Cast<T>().FirstOrDefault();
}

/// <summary>
@@ -53,7 +53,7 @@
/// <returns>An instance of the service.</returns>
public static T Get<T>(this IResolutionRoot root, string name, params
IParameter[] parameters)
{
- return GetResolutionIterator<T>(root, typeof(T), b => b.Name == name,
parameters, false).FirstOrDefault();
+ return GetResolutionIterator(root, typeof(T), b => b.Name == name,
parameters, false).Cast<T>().FirstOrDefault();
}

/// <summary>
@@ -66,7 +66,7 @@
/// <returns>An instance of the service.</returns>
public static T Get<T>(this IResolutionRoot root, Func<IBindingMetadata,
bool> constraint, params IParameter[] parameters)
{
- return GetResolutionIterator<T>(root, typeof(T), constraint,
parameters, false).FirstOrDefault();
+ return GetResolutionIterator(root, typeof(T), constraint, parameters,
false).Cast<T>().FirstOrDefault();
}

/// <summary>
@@ -78,7 +78,7 @@
/// <returns>An instance of the service, or <see langword="null"/> if no
implementation was available.</returns>
public static T TryGet<T>(this IResolutionRoot root, params IParameter[]
parameters)
{
- return GetResolutionIterator<T>(root, typeof(T), null, parameters,
true).FirstOrDefault();
+ return GetResolutionIterator(root, typeof(T), null, parameters,
true).Cast<T>().FirstOrDefault();
}

/// <summary>
@@ -91,7 +91,7 @@
/// <returns>An instance of the service, or <see langword="null"/> if no
implementation was available.</returns>
public static T TryGet<T>(this IResolutionRoot root, string name, params
IParameter[] parameters)
{
- return GetResolutionIterator<T>(root, typeof(T), b => b.Name == name,
parameters, true).FirstOrDefault();
+ return GetResolutionIterator(root, typeof(T), b => b.Name == name,
parameters, true).Cast<T>().FirstOrDefault();
}

/// <summary>
@@ -104,7 +104,7 @@
/// <returns>An instance of the service, or <see langword="null"/> if no
implementation was available.</returns>
public static T TryGet<T>(this IResolutionRoot root,
Func<IBindingMetadata, bool> constraint, params IParameter[] parameters)
{
- return GetResolutionIterator<T>(root, typeof(T), constraint,
parameters, true).FirstOrDefault();
+ return GetResolutionIterator(root, typeof(T), constraint, parameters,
true).Cast<T>().FirstOrDefault();
}

/// <summary>
@@ -116,7 +116,7 @@
/// <returns>A series of instances of the service.</returns>
public static IEnumerable<T> GetAll<T>(this IResolutionRoot root, params
IParameter[] parameters)
{
- return GetResolutionIterator<T>(root, typeof(T), null, parameters,
true);
+ return GetResolutionIterator(root, typeof(T), null, parameters,
true).Cast<T>();
}

/// <summary>
@@ -129,7 +129,7 @@
/// <returns>A series of instances of the service.</returns>
public static IEnumerable<T> GetAll<T>(this IResolutionRoot root, string
name, params IParameter[] parameters)
{
- return GetResolutionIterator<T>(root, typeof(T), b => b.Name == name,
parameters, true);
+ return GetResolutionIterator(root, typeof(T), b => b.Name == name,
parameters, true).Cast<T>();
}

/// <summary>
@@ -142,7 +142,7 @@
/// <returns>A series of instances of the service.</returns>
public static IEnumerable<T> GetAll<T>(this IResolutionRoot root,
Func<IBindingMetadata, bool> constraint, params IParameter[] parameters)
{
- return GetResolutionIterator<T>(root, typeof(T), constraint,
parameters, true);
+ return GetResolutionIterator(root, typeof(T), constraint, parameters,
true).Cast<T>();
}

/// <summary>
@@ -154,7 +154,7 @@
/// <returns>An instance of the service.</returns>
public static object Get(this IResolutionRoot root, Type service, params
IParameter[] parameters)
{
- return GetResolutionIterator<object>(root, service, null, parameters,
false).FirstOrDefault();
+ return GetResolutionIterator(root, service, null, parameters,
false).FirstOrDefault();
}

/// <summary>
@@ -167,7 +167,7 @@
/// <returns>An instance of the service.</returns>
public static object Get(this IResolutionRoot root, Type service, string
name, params IParameter[] parameters)
{
- return GetResolutionIterator<object>(root, service, b => b.Name ==
name, parameters, false).FirstOrDefault();
+ return GetResolutionIterator(root, service, b => b.Name == name,
parameters, false).FirstOrDefault();
}

/// <summary>
@@ -180,7 +180,7 @@
/// <returns>An instance of the service.</returns>
public static object Get(this IResolutionRoot root, Type service,
Func<IBindingMetadata, bool> constraint, params IParameter[] parameters)
{
- return GetResolutionIterator<object>(root, service, constraint,
parameters, false).FirstOrDefault();
+ return GetResolutionIterator(root, service, constraint, parameters,
false).FirstOrDefault();
}

/// <summary>
@@ -192,7 +192,7 @@
/// <returns>An instance of the service, or <see langword="null"/> if no
implementation was available.</returns>
public static object TryGet(this IResolutionRoot root, Type service,
params IParameter[] parameters)
{
- return GetResolutionIterator<object>(root, service, null, parameters,
true).FirstOrDefault();
+ return GetResolutionIterator(root, service, null, parameters,
true).FirstOrDefault();
}

/// <summary>
@@ -205,7 +205,7 @@
/// <returns>An instance of the service, or <see langword="null"/> if no
implementation was available.</returns>
public static object TryGet(this IResolutionRoot root, Type service,
string name, params IParameter[] parameters)
{
- return GetResolutionIterator<object>(root, service, b => b.Name ==
name, parameters, true).FirstOrDefault();
+ return GetResolutionIterator(root, service, b => b.Name == name,
parameters, true).FirstOrDefault();
}

/// <summary>
@@ -218,7 +218,7 @@
/// <returns>An instance of the service, or <see langword="null"/> if no
implementation was available.</returns>
public static object TryGet(this IResolutionRoot root, Type service,
Func<IBindingMetadata, bool> constraint, params IParameter[] parameters)
{
- return GetResolutionIterator<object>(root, service, constraint,
parameters, true).FirstOrDefault();
+ return GetResolutionIterator(root, service, constraint, parameters,
true).FirstOrDefault();
}

/// <summary>
@@ -230,7 +230,7 @@
/// <returns>A series of instances of the service.</returns>
public static IEnumerable<object> GetAll(this IResolutionRoot root, Type
service, params IParameter[] parameters)
{
- return GetResolutionIterator<object>(root, service, null, parameters,
true);
+ return GetResolutionIterator(root, service, null, parameters, true);
}

/// <summary>
@@ -243,7 +243,7 @@
/// <returns>A series of instances of the service.</returns>
public static IEnumerable<object> GetAll(this IResolutionRoot root, Type
service, string name, params IParameter[] parameters)
{
- return GetResolutionIterator<object>(root, service, b => b.Name ==
name, parameters, true);
+ return GetResolutionIterator(root, service, b => b.Name == name,
parameters, true);
}

/// <summary>
@@ -256,13 +256,13 @@
/// <returns>A series of instances of the service.</returns>
public static IEnumerable<object> GetAll(this IResolutionRoot root, Type
service, Func<IBindingMetadata, bool> constraint, params IParameter[]
parameters)
{
- return GetResolutionIterator<object>(root, service, constraint,
parameters, true);
+ return GetResolutionIterator(root, service, constraint, parameters,
true);
}

- private static IEnumerable<T> GetResolutionIterator<T>(IResolutionRoot
root, Type service, Func<IBindingMetadata, bool> constraint,
IEnumerable<IParameter> parameters, bool isOptional)
+ private static IEnumerable<object> GetResolutionIterator(IResolutionRoot
root, Type service, Func<IBindingMetadata, bool> constraint,
IEnumerable<IParameter> parameters, bool isOptional)
{
IRequest request = root.CreateRequest(service, constraint, parameters,
isOptional);
- return root.Resolve<T>(request).Select(hook => hook.Resolve());
+ return root.Resolve(request).Select(hook => hook.Resolve());
}
}
}

Reply all
Reply to author
Forward
0 new messages