:TypedFactoryFacilityを使用していますか?
public interface IServiceFactory
{
T Create<T>();
void Release(object service);
}
そして、私のコントローラは、このようなものになります:
// Factory for late-binding scenarios
container.AddFacility<TypedFactoryFacility>();
container.Register(
Component
.For<IServiceFactory>()
.AsFactory()
);
IServiceFactory
がある
public class PostsController : BaseController
{
private readonly IServiceFactory serviceFactory;
private LinkService linkService
{
get { return serviceFactory.Create<LinkService>(); }
}
public PostsController(IServiceFactory serviceFactory)
{
if (serviceFactory == null)
{
throw new ArgumentNullException("serviceFactory");
}
this.serviceFactory = serviceFactory;
}
全体のポイントをたとえLinkService
にPerWebRequest
のライフスタイルがあっても、私はいつもそれが必要なわけではないかもしれないので、それを注入する直接私に間違っているようです。
ここで気になる質問は、コンテナをサービスロケータとして使用していますか?
ニース、これは私が欲しかった、エレガントかつ簡潔です。 – bevacqua
参照:http://docs.castleproject.org/Windsor.Whats-New-In-Windsor-3.ashx#Added_support_for_Lazy__components_3 – codekaizen
Lazyに依存することは、本質的に漏洩抽象です。それは何の目的ですか?怠惰な初期化?その場合、バーチャルプロキシはよりクリーンなデザインを提供します:http://blog.ploeh.dk/2011/03/04/ComposeObjectGraphsWithConfidence.aspx –