避免MVC.NET中的循环依赖

时间:2017-09-15 07:37:27

标签: c# asp.net-mvc asp.net-mvc-4 circular-reference

我的项目引用有点问题,如下所示 首先,你有顶层的标准图层模型和MVC.NET项目,但红线开始出现:

Resources -> used for creating and editing resource files (.resx) and 
saving information about them to the database.

Utility -> has some custom attributes that go on top of the model objects. 

资源需要Model,因为Resource项目将模型对象保存到数据库。 由于自定义属性,Model需要Utility

Utility需要Resources,因为它必须以Resources.ResourceManager

的正确语言形式获取正确的错误消息

Not PICTURED:MVC Web也使用Utility

问题:模型,实用程序和资源形成循环依赖,这是不可能的,有关如何修复结构的任何建议,以便它起作用吗?

感谢阅读。

编辑:来自Utility类的示例代码,ResourceManager来自资源库:

public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
    ErrorMessage = ResourceManager.Get(HttpContext.Current.User.Identity.Lang(), ErrorMessageKey);


    ModelClientValidationRule CRequiredRule = new ModelClientValidationRule();
    CRequiredRule.ErrorMessage = ErrorMessage;
    CRequiredRule.ValidationType = "crequired";

    yield return CRequiredRule;
}

project structure

0 个答案:

没有答案