3

AppHostBase已经包含一个Container属性(如果定义则解析EndpointHost.Config.ServiceManager.Container),那么为什么不在任何实现内部或其他地方使用Instance.Container(例如,用于注册依赖项、插件等)?ConfigureAppHost

我确实注意到这Configure是一个公共调用,所以从技术上讲,它可以从任何地方调用,尽管它似乎AppHostBase.Init()是 ServiceStack 代码库中唯一这样做的地方。

4

1 回答 1

1

所有配置和注册都应该在AppHost.Configure(Container)方法的上下文中发生,之后它应该对 ThreadSafety 保持不可变(只读)。

容器被传入是因为它是所有应用程序依赖项都应该注册的地方。因此,Container 属性本身应该被视为只读,这就是为什么核心类IAppHost只公开IResolver.TryResolve方法的原因。

于 2013-05-21T16:17:17.857 回答