Clock.IoC/ClockConfiguration.cs (20 lines of code) (raw):
namespace Clock.IoC
{
using System;
using System.Collections.Generic;
using global::IoC;
using Models;
using ViewModels;
using static global::IoC.Lifetime;
/// <summary>
/// IoC Configuration.
/// </summary>
public class ClockConfiguration: IConfiguration
{
public IEnumerable<IToken> Apply(IMutableContainer container)
{
// View Models
yield return container
.Bind<IClockViewModel>().As(Singleton).To<ClockViewModel>();
// Models
yield return container
.Bind<ITimer>().As(Singleton).To<Timer>(ctx => new Timer(TimeSpan.FromSeconds(1)))
.Bind<IClock>().As(Singleton).To<Clock>();
}
}
}