Skip to content

Instantly share code, notes, and snippets.

View cammerman's full-sized avatar

Chris Ammerman cammerman

View GitHub Profile
@cammerman
cammerman / GreetService.cs
Created February 7, 2011 03:00
Service class
using System.ServiceProcess;
namespace HelloSvc.Services
{
internal class GreetService : ServiceBase
{
public GreetService()
{
ServiceName = "Greeter";
CanStop = true;
@cammerman
cammerman / ServiceBootstrapper.cs
Created February 7, 2011 03:30
Service IoC bootstrapper, v2
using System.ServiceProcess;
using Autofac;
namespace HelloSvc
{
internal class ServiceBootstrapper
{
public IContainer Build()
{
@cammerman
cammerman / IServiceNameProvider.cs
Created February 7, 2011 03:48
Service name provider
namespace HelloSvc.Config
{
internal interface IServiceNameProvider
{
String ServiceName { get; }
}
}
@cammerman
cammerman / GreetService.cs
Created February 7, 2011 03:55
Service name injection updates
public GreetService(IServiceNameProvider serviceNameProvider)
{
serviceNameProvider.ThrowIfNull("serviceNameProvider");
ServiceName =
serviceNameProvider.ServiceName
.ThrowIfNullOrEmpty("serviceNameProvider.ServiceName");
CanStop = true;
AutoLog = false;
@cammerman
cammerman / gist:813981
Created February 7, 2011 04:03
Service name provider registration
builder
.RegisterType<Config.ServiceNameProvider>()
.As<Config.IServiceNameProvider>()
.InstancePerLifetimeScope();
@cammerman
cammerman / BootstrapIoC.cs
Created February 10, 2011 04:49
Cache registrations
builder
.RegisterType<Cache>()
.Keyed<ECacheType>(ECacheType.Thumb)
.As<ICache>()
.InstancePerLifetimeScope();
builder
.RegisterType<Cache>()
.Keyed<ECacheType>(ECacheType.Image)
.As<ICache>()
@cammerman
cammerman / BootstrapIoC.cs
Created February 11, 2011 05:47
Cache registrations 2
builder
.RegisterType<Cache>()
.As<ICache>()
.WithMetadata("CacheType", ECacheType.Thumb)
.InstancePerLifetimeScope();
builder
.RegisterType<Cache>()
.As<ICache>()
.WithMetadata("CacheType", ECacheType.Image)
@cammerman
cammerman / BootstrapIoC.cs
Created February 12, 2011 05:17
Autofac - keyed registration and IIndex dependencies.
public class BootstrapIoC
{
public BootstrapIoC ()
{
}
public IContainer Build()
{
var builder = new ContainerBuilder();
@cammerman
cammerman / GreetService.cs
Created February 21, 2011 00:31
Worker thread
internal class GreetService : ServiceBase
{
protected virtual IGreeter Greeter
{
get;
private set;
}
protected virtual ILogger Logger
{
@cammerman
cammerman / GreetService.cs
Created February 21, 2011 00:54
Service does something once
namespace HelloSvc.Services
{
using Config;
internal class GreetService : ServiceBase
{
protected virtual IGreeter Greeter
{
get;