AppHostBase
已经包含Container
属性(如果已定义则解析为EndpointHost.Config.ServiceManager.Container
),那么为什么不使用Instance.Container
(例如,用于注册依赖项,插件等) 。)在Configure
内或任何AppHost
实现中的其他地方?
我注意到Configure
是一个公共调用,因此技术上可以从任何地方调用,尽管AppHostBase.Init()
似乎是ServiceStack代码库中唯一这样做的地方。
答案 0 :(得分:1)
所有配置和注册都应该在AppHost.Configure(Container)
方法的上下文中进行,之后它应该对ThreadSafety保持不可变(只读)。
传入Container,因为这是应该注册所有应用程序依赖项的地方。因此,应将Container属性本身视为只读,这就是IAppHost
等核心类仅公开IResolver.TryResolve方法的原因。