42 lines
1.1 KiB
C#
42 lines
1.1 KiB
C#
|
using System;
|
|||
|
using Ninject.Activation.Caching;
|
|||
|
using Ninject.Planning.Bindings;
|
|||
|
|
|||
|
namespace Ninject.Moq
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// A kernel that will create mocked instances (via Moq) for any service that is
|
|||
|
/// requested for which no binding is registered.
|
|||
|
/// </summary>
|
|||
|
public class MockingKernel : StandardKernel
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Clears the kernel's cache, immediately deactivating all activated instances regardless of scope.
|
|||
|
/// This does not remove any modules, extensions, or bindings.
|
|||
|
/// </summary>
|
|||
|
public void Reset()
|
|||
|
{
|
|||
|
Components.Get<ICache>().Clear();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Attempts to handle a missing binding for a service.
|
|||
|
/// </summary>
|
|||
|
/// <param name="service">The service.</param>
|
|||
|
/// <returns><c>True</c> if the missing binding can be handled; otherwise <c>false</c>.</returns>
|
|||
|
protected override bool HandleMissingBinding(Type service)
|
|||
|
{
|
|||
|
var binding = new Binding(service)
|
|||
|
{
|
|||
|
ProviderCallback = MockProvider.GetCreationCallback(),
|
|||
|
ScopeCallback = ctx => null,
|
|||
|
IsImplicit = true
|
|||
|
};
|
|||
|
|
|||
|
AddBinding(binding);
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|