首页 > 解决方案 > 从不同项目调用类而不引起循环引用

问题描述

我有一个解决方案,有多个项目。这里我们关心的是网站项目和模型项目。

这些模型有很多处于请求/响应模式的模型。例如,如果我有一个名为 GetCustomers 的方法,它将被声明为 public GetCustomersResponse GetCustomers(GetCustomersRequest req)。这将确保如果将来添加更多参数,我只需要更新模型。希望你能明白。

所有的 req/res 模型都分别继承了 baseReq 和 baseRes。此处包含的属性之一称为 Header,其中包括许多常见属性(例如 SiteId、Currency)。

对于每个请求,我必须调用一个 Initialize 方法来为我填充这些属性(位于网站项目中(由于需要 HttpRequest 信息)。是否可以从模型项目本身(在构造函数中)调用此方法,以免每次都调用initialize(代码重复)?事实上,由于网站引用模型,由于循环引用而无法返回。有没有办法解决它,还是不可能?

我曾尝试查看网络上的不同文章,但大多数人说这是不可能的。其他人建议有第三个项目,两个项目都引用它,但不确定这是否有效,因为我需要 HttpContext 对象。

请问有什么想法吗?或者,我可以从 Models 项目中访问 HttpContext 吗?

标签: .net-core

解决方案


推荐阅读