2017-07-14 30 views
0

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

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

我的问题是项目“A”不能引用项目“B”(这将是循环!),所以“B”永远不会被调用(甚至不是静态构造函数),它不能订阅“A”或做任何事情在所有。如果我将“B”作为入口点,果然,构造函数和所有东西都会被调用,但是我不知道如何正确地创建项目“A”(不出所料,网站不会被创建)。

我该如何解决这个问题?

+0

在Visual Studio中是否存在此问题,因为在您尝试调试您的项目? –

+0

这听起来像是解决方案设计问题。 – maccettura

+0

是的,我在Visual Studio中工作,而且我正在以调试模式构建。 – Pablo

回答

2

这听起来像是你的架构有问题。

无论谁持有对另一方的引用都应被视为门卫,并应在启动时初始化另一方。

在你的情况下,B不应该订阅A.A应该实例化B并做任何事件布线是必要的,因此B可以“反应”。

+0

是的,我一直在想这个。我会试图弄清楚如何从A订阅B到A,这是有道理的,如果A持有对B的引用,这应该是可能的! – Pablo

+0

它工作完美。我总是从听众那里订阅活动,但是如果写在发件人身上,我很高兴看到相同的句子起作用! – Pablo