虽然这个问题看起来有点奇怪。我仍然在碰巧加入一个新项目。
该项目大量使用温莎城堡 IoC。初始化后检查容器告诉我一些实现已注册为其他实现,LifeStyle.Transient
而其他实现已注册LifeStyle.Singleton
。他们的自定义引导代码搜索程序集并进行基于约定的注册,但没有提及生活方式。那么注册组件在生活方式上有何不同呢?
温莎城堡有一些神奇的命名约定吗?
例如:一对IFooManager
andFooManager
将成为单身人士,而IFoo
andFoo
将获得短暂的生活方式....(仅归功于 *Manager)。
正如评论所要求的那样,这是在所有 /somehow enumerated/ 程序集上循环执行的核心注册:
var assembly = Assembly.LoadFrom(fileName); container.Register(Classes.FromAssembly(assembly).Pick() .If(t => TypeIsInNamespaces(includeNamespaces, t) && GetInterfacesOfType(t, includeNamespaces).Any()) .WithService.Select((t, baseT) => GetInterfacesOfType(t, includeNamespaces)).Configure(c => c.Named(GetName(c.Implementation))));
呼唤远方
一只名叫tom的猫
阿晨1998
相关分类