我有一个UserContext,在每个WCF调用中我都将其填充,在Castle容器中,其生活方式为PerWcfOperation
public class IUserContext
{
string UserName {get;}
string Token {get;}
}
Container.Register(Component.For<IUserContext>().ImplementedBy<UserContext>().LifeStyle.PerWcfOperation());
在服务方法中,当我解析IUserContext为null时。
public void Foo()
{
foreach(...) {
Task.Factory.StartNew(() =>method1);
}
void method1()
{
// context is null
var context = Container.Resolve<IUserContext>();
}
}
我必须在WCF调用中打开的所有线程中使用哪个LifeStyle? 还是有什么办法可以在所有任务之间分割IUserContext?