我有一个User实体,它具有HasCompletedSecurity属性,该属性指示该特定用户是否已回答系统所需的安全问题的数量.系统所需的安全问题数量是可配置的,并从配置文件中检索. User类应该如何访问配置的信息?
我目前有一个IConfigurationService接口,我有一些实现,它使用ConfigurationManager或Azure等效项(如果可用).我通过静态的InjectionService类封装了对我的DI容器的访问,并且我正在解析配置的值,如下所示:
public class User { private static readonly IConfigurationService _configurationService = InjectionService.Resolve<IConfigurationService>(); public bool HasCompletedSecurity { get { // Uses the static _configurationService to get the // configured value: int numberOfrequiredResponses = GetConfigurednumberOfrequiredResponses(); return this.SecurityQuestionResponses.Count() >= GetConfigurednumberOfrequiredResponses(); } } }
这当然是ServiceLocator anti-pattern的一个例子,我不喜欢它.静态依赖使单元测试任何使用此类的东西都很笨拙.
我正在使用Entity Framework并从here开始提示我不想通过DI容器传递我的实体来为它们提供依赖关系,所以……我应该如何访问配置的值呢?
编辑:将这个确切的示例放在一边(我确实感谢关于它的正确架构的建议),我感兴趣的更大的问题是如何管理来自实体的服务的非静态引用?答案只是以你永远不需要的方式构建实体吗?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。