c# - 温莎城堡是否有一个命名约定来自动判断生活方式?
问题描述
虽然这个问题看起来有点奇怪。我仍然在碰巧加入一个新项目。
该项目大量使用温莎城堡 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))));
解决方案
要按要求回答您的问题(因为可以回答)-不,温莎城堡没有神奇的命名约定来暗示生活方式。
推荐阅读
- python - How do I use this callback in Python?
- sql - 根据 SQL 中的当前日期计算月底还剩多少天
- npm - 使用 IDE 或任务运行器添加多个文件
- c# - 在 WPF 中,根据自定义类的属性对 ListBox 或 ListView 进行分组
- python - 我正在用 Python 为我的雇主创建一个库存系统,我应该将库存信息存储在 SQLite 数据库中吗?
- python - 熊猫在 groupby 级别 2 总和或平均条件上删除行
- mongodb - 聚合嵌入文档数组
- ios - 如何以编程方式设置自定义粗体字体 - swift
- javascript - 在 HTML / JSON 中使用 i18n
- css - 使用 LESS,我可以在嵌套子元素中引用父元素吗