从依赖于另一个注册元素的服务堆栈的 IoC 容器解析



我有一个类,它应该有一个Service的实例(访问数据库和其他服务):

public class MyFoo : IFoo
{
    public Service Service { get; set; }
    public MyFoo (Service service)
    {
        Service = service;
    }
}

我想在ServiceStack的IoC容器中注册这个类。目前,我是这样做的

container.Register<IFoo> (c => new MyFoo (c.TryResolve<MyService> ()));

这确实工作得很好,但是在解析容器中的一个元素的同时注册另一个元素,这让我觉得非常难看。是否有更优雅的方式来实现这一点?

您也可以使用AutoWired api之一注册依赖项,例如:

container.RegisterAutoWiredAs<MyFoo,IFoo>()

ServiceStack也会给每个公共属性注入任何注册的依赖项,所以你不需要你的构造函数,例如:

public class MyFoo : IFoo
{
    public Service Service { get; set; }
}

最新更新