【问题标题】:Initialize unreferenced project in MVC在 MVC 中初始化未引用的项目
【发布时间】:2017-07-14 13:55:25
【问题描述】:

我有一个包含 2 个项目的 Web 应用程序解决方案。我正在使用 ASP.NET MVC。

项目“A”拥有所有的网站元素,它创建了项目“B”对做事做出反应的事件。项目“A”是入口点,项目“B”具有对“A”的引用,因此它可以订阅 A 的事件。

我的问题是项目“A”不能引用项目“B”(那将是循环的!),所以“B”永远不会被调用(甚至静态构造函数),它不能订阅“A”或在全部。

如果我让“B”作为入口点,果然,构造函数和所有东西都会被调用,但是我不知道如何正确地让项目“A”启动(不出所料,网站没有创建)。

我该如何解决这个问题?

【问题讨论】:

  • 这个问题在 Visual Studio 中,就像您尝试调试项目一样?
  • 这听起来像是解决方案设计问题。
  • 是的,我在 Visual Studio 中工作,目前正在调试模式下构建。
  • 是的,项目的设计可能不是最优的,尽管我相信这是有道理的:“A”创建了网站,与用户的界面。并创建事件,以便其他程序可以做他们的事情。这听起来有问题吗? (这是我第一次与多个项目合作!)

标签: c# asp.net-mvc design-patterns architecture


【解决方案1】:

听起来你的架构有问题。

持有对对方的引用的人应被视为守门人,并应在启动时初始化对方。

在您的情况下,B 不应该订阅 A。A 应该实例化 B 并执行所需的任何事件连接,以便 B 可以“做出反应”。

【讨论】:

  • 是的,我一直在考虑这个问题。我将尝试弄清楚如何从 A 订阅 B 到 A,如果 A 持有对 B 的引用,这应该是可能的!
  • 效果很好。我一直从听众那里订阅事件,但我很高兴看到如果写在发件人上同样的句子有效!
猜你喜欢
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 1970-01-01
  • 2018-08-02
相关资源
最近更新 更多