c# - 从依赖于另一个注册元素的 ServiceStack 的 IoC 容器解析

标签 c# .net servicestack inversion-of-control ioc-container

我有一个类,它应该有一个 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> ()));

这确实工作正常,但我觉得在注册另一个容器的同时解析容器中的元素非常丑陋。有没有更优雅的方法来实现这一点?

最佳答案

你也可以注册依赖 using one of the AutoWired APIs ,例如:

container.RegisterAutoWiredAs<MyFoo,IFoo>()

此外,ServiceStack 将向每个公共(public)属性注入(inject)任何已注册的依赖项,因此您不需要构造函数,例如:

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

关于c# - 从依赖于另一个注册元素的 ServiceStack 的 IoC 容器解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39508465/

相关文章:

c# - 不能在内插字符串周围使用文字大括号

c# - 时间跨度差值始终为正

.net - Silverlight 或 ClientBin 问题?

c# - ListBox ItemTemplate 背景透明

servicestack - 为什么ServiceStack示例的函数定义通常为 "object Any"

servicestack - 不是 POCO 的对象示例是什么?为什么它不是 POCO?

c# - ASP 中的异步 Web 服务。网络MVC

javascript - Kendo MVC NumericTextBoxFor 默认值未绑定(bind)到模型

c# - 为我的 C# .NET Winform 应用程序创建单个连接文件

servicestack - 为命名连接配置 ConnectionFilter