C# 温莎城堡生活方式配置之间的差异

C# 温莎城堡生活方式配置之间的差异,c#,inversion-of-control,castle-windsor,C#,Inversion Of Control,Castle Windsor,这两者有什么区别 Component.For<IMyType>() .LifeStyle .PerWebRequest .UsingFactoryMethod(() => new MyType()); Component.For() .生活方式 PerWebRequest先生 .UsingFactoryMethod(()=>new MyType()); 及 Component.For() .UsingFactoryMethod(()=>new MyT

这两者有什么区别

Component.For<IMyType>()
    .LifeStyle
    .PerWebRequest
    .UsingFactoryMethod(() => new MyType());
Component.For()
.生活方式
PerWebRequest先生
.UsingFactoryMethod(()=>new MyType());

Component.For()
.UsingFactoryMethod(()=>new MyType())
.生活方式
.Is(LifestyleType.PerWebRequest);

它们是一样的。唯一的区别是API被简化了(变得更简洁、更直接)。使用Windsor 3,您可以进一步简化:

Component.For<IMyType>()
    .LifestylePerWebRequest()
    .UsingFactoryMethod(() => new MyType());
Component.For()
.LifestylePerWebRequest()
.UsingFactoryMethod(()=>new MyType());
希望这有帮助

此外,第一种是“硬编码”的生活方式,而后者可能会使用时,生活方式是从外部提供
Component.For<IMyType>()
    .LifestylePerWebRequest()
    .UsingFactoryMethod(() => new MyType());