如何处理循环引用?

Edu*_*rdo 27 .net architecture circular-reference visual-studio

如果我有这两个项目:

MyCompany.ERP.Billing
MyCompany.ERP.Financial
Run Code Online (Sandbox Code Playgroud)

结算Financial发送/发送信息,反之亦然.两者都太大了所以我不想把它们放在一个项目中.Visual Studio不允许循环引用.你会怎么处理?

dev*_*ull 25

从类中提取接口并将它们放入从两者BillingFinancial项目引用的核心项目中.然后,您可以使用这些接口在程序集之间共享数据.

这只允许您在这两个程序集之间传递对象,但是您不能从另一个程序集创建对象,因为您实际上没有开头的引用.如果您希望能够创建对象,则需要在这两个项目外部的工厂处理对象创建.

我想提取需要共享数据之间来回的业务逻辑Billing,并Financial到另一个项目.这将使事情变得更加容易,并且可以避免诉诸于使可维护性成为噩梦的各种技巧.


Phi*_*ilB 5

拥有太大的项目应该不是问题.您可以使用命名空间和源代码的不同文件夹来构建代码.在这种情况下,循环引用不再是问题.

  • +1试图让它回归中立.弹出循环引用时,至少应该考虑答案(以及注释).这不值得一个downvote,IMO. (4认同)
  • 大型项目的一个问题是很多人在.csproj文件中进行更改,导致合并太多. (3认同)
  • @PhilB:除了部署之外,还有其他原因可以创建其他项目.您是说整个应用程序应尽可能只是一个项目?我认为这对其他一些问题视而不见,其中最重要的是它们是适当的SOC. (2认同)