Skip to content

Instantly share code, notes, and snippets.

@casper-rasmussen
Last active August 14, 2017 18:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save casper-rasmussen/aa5ccd9bb7adbcc2da5a723103eb64b4 to your computer and use it in GitHub Desktop.
Save casper-rasmussen/aa5ccd9bb7adbcc2da5a723103eb64b4 to your computer and use it in GitHub Desktop.
[InitializableModule]
[ModuleDependency(typeof(EPiServer.Web.InitializationModule))]
public class MetricsInitialization : IConfigurableModule
{
public void ConfigureContainer(ServiceConfigurationContext context)
{
context.Container.Configure(ConfigureContainer);
}
private static void ConfigureContainer(ConfigurationExpression container)
{
//Health Check
container.For<IHealthCheckConvention>().Add<AuthenticationServerHealthCheckConvention>();
//Measurements
ProxyGenerator proxyGenerator = new ProxyGenerator();
container.For<IContentRepository>().DecorateAllWith((c, i) => proxyGenerator.CreateInterfaceProxyWithTarget(i, new ApplyMetricsTimingInterceptor(c.GetInstance<IMetricManager>())));
IProxyGenerationHook methodHook = new SomeMethodsHook("GetUserNavigation");
container.For<INavigationManager>().DecorateAllWith((c, i) =>
proxyGenerator.CreateInterfaceProxyWithTarget(i, new ProxyGenerationOptions(methodHook), new ApplyMetricsTimingInterceptor(c.GetInstance<IMetricManager>())));
}
public void Initialize(InitializationEngine context)
{
}
public void Uninitialize(InitializationEngine context)
{
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment