首页 > 解决方案 > 温莎城堡是否有一个命名约定来自动判断生活方式?

问题描述

虽然这个问题看起来有点奇怪。我仍然在碰巧加入一个新项目。

该项目大量使用温莎城堡 IoC。初始化后检查容器告诉我一些实现已注册为其他实现,LifeStyle.Transient而其他实现已注册LifeStyle.Singleton。他们的自定义引导代码搜索程序集并进行基于约定的注册,但没有提及生活方式。那么注册组件在生活方式上有何不同呢?

温莎城堡有一些神奇的命名约定吗?

例如:一对IFooManagerandFooManager将成为单身人士,而IFooandFoo将获得短暂的生活方式....(仅归功于 *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))));

标签: c#.netcastle-windsor

解决方案


要按要求回答您的问题(因为可以回答)-不,温莎城堡没有神奇的命名约定来暗示生活方式。


推荐阅读