Reputation: 1628
In Windsor 2.1, I have the following piece of code to change lifestyle of all services to PerWcfOperation when the code is executed in wcf context:
container.Kernel.ComponentModelBuilder.AddContributor(
new CustomLifestyleLevelingContributeComponentModelConstruction(typeof (PerWcfOperationLifestyle))
where CustomLifestyleLevelingContributeComponentModelConstruction is:
public class CustomLifestyleLevelingContributeComponentModelConstruction : IContributeComponentModelConstruction
{
private readonly Type customLifestyleType;
private readonly List<LifestyleType> ignoredLifetyles;
public CustomLifestyleLevelingContributeComponentModelConstruction(Type customLifestyleType)
{
this.customLifestyleType = customLifestyleType;
}
public void ProcessModel(IKernel kernel, ComponentModel model)
{
model.LifestyleType = LifestyleType.Custom;
model.CustomLifestyle = customLifestyleType;
}
}
My problem is that the class PerWcfOperationLifestyle has been removed from Windsor 3.0. Could anyone please show me how I can achieve the same goal with Windsor 3.x?
Upvotes: 0
Views: 378
Reputation: 1628
I solved this problem by rewriting the ProcessModel method as the below:
public void ProcessModel(IKernel kernel, ComponentModel model)
{
model.LifestyleType = LifestyleType.Scoped;
model.ExtendedProperties[Constants.ScopeAccessorType] = typeof(WcfOperationScopeAccessor);
}
Upvotes: 1