WindsorViewModelLoader.cs
Home
/
src /
DotVvmCastleWindsor /
Helpers /
WindsorViewModelLoader.cs
namespace DotVvmCastleWindsor.Helpers
{
using Castle.Windsor;
using DotVVM.Framework.Hosting;
using DotVVM.Framework.ViewModel.Serialization;
using System;
public class WindsorViewModelLoader : DefaultViewModelLoader
{
private readonly WindsorContainer _windsorContainer;
public WindsorViewModelLoader(WindsorContainer windsorContainer)
{
_windsorContainer = windsorContainer;
}
protected override object CreateViewModelInstance(Type viewModelType, IDotvvmRequestContext context)
{
return _windsorContainer.Resolve(viewModelType);
}
public override void DisposeViewModel(object instance)
{
_windsorContainer.Release(instance);
base.DisposeViewModel(instance);
}
}
}