public override void Load()
{
log.Info("Csharp plugin loaded");
Bind<ICommand>().To<VisualStudioCommand>().Named("vs");
Bind<ICleanExtension>().To<CsprojCleaner>();
Bind<IProjectGuidManagement>().To<DefaultProjectGuidManagement>().InSingletonScope();
Bind<ICsprojBuilderFactory>().ToFactory();
Bind<ISlnProject>().To<CsharpSlnProject>();
Bind<IMSBuildProjectSection>().To<PropertiesSection>().WhenInjectedInto<CsprojGenerator>();
Bind<IMSBuildProjectSection>().To<ReferencesSection>().WhenInjectedInto<CsprojGenerator>().WithConstructorArgument("sourceSetName", "cs");
Bind<IMSBuildProjectSection>().To<SourceItemsSection>().WhenInjectedInto<CsprojGenerator>();
Bind<IMSBuildProjectSection>().To<EmbeddedResourcesSection>().WhenInjectedInto<CsprojGenerator>();
Bind<IMSBuildProjectSection>().To<VersionSection>().WhenInjectedInto<CsprojGenerator>();
Bind<IMSBuildProjectSection>().To<WCFMetadataSection>().WhenInjectedInto<CsprojGenerator>();
Bind<IYamlProjectParametersLoader>().To<CsharpParametersLoader>();
Bind<IYamlProjectParametersLoader>().To<WPFParametersLoader>();
Bind<ISuiteContentsAnalyzer>().To<DefaultSuiteContentsAnalyzer>();
Bind<ISlnNameGenerator>().To<HashBasedSlnNameGenerator>().WhenInjectedInto<ReadableSlnNameGenerator>();
Bind<ISlnNameGenerator>().To<ReadableSlnNameGenerator>();
var protocolRegistry = Kernel.Get<IDependencyFingerprintProtocolRegistry>();
protocolRegistry.RegisterEnum(i => (CsharpLanguageVersion)i);
var store = Kernel.Get<IBuilderStore>();
var csprojBuilderFactory = Kernel.Get<ICsprojBuilderFactory>();
Rebind<ICsprojBuilderFactory>().ToConstant(
new StoredCsprojBuilderFactory(csprojBuilderFactory, store));
}