2017-02-09 86 views
0

道歉,我是WebAPI的新手。请允许我提供一些背景知识。我有三个项目的解决方案:存储库与SQL实体框架,控制台应用程序和MVC Web API。我的存储库查询SQL,将数据提供给控制台应用程序,该应用程序输出来自原始SQL数据的计算列表。我现在希望能够通过Web API将该列表推送到我的本地主机。我使用Web API将数据从测试存储库推送到本地主机浏览器,其中包含一系列测试数据(此数据不计算,我只是创建了一个静态数组,以查看是否可以拉出任何东西),并且它工作正常。但是,当我尝试从控制台应用程序获取输出列表并将其提供到我的测试存储库中,然后将这些数据向上推送时,数据不会通过。我在整个程序集中提供了输出列表,这样我就可以从Web API访问控制台应用程序列表。Web API项目如何从同一解决方案中的其他项目访问列表?

任何想法?

谢谢

回答

1

这听起来像你需要重新调整你的项目了一下。我建议重构您的代码,以便项目如下:

  • 存储库项目:这将与您的数据库对话并负责从数据库检索数据。
  • 应用程序项目:它引用了您的存储库项目并执行当前正在控制台应用程序中执行的计算。
  • 控制台应用程序项目:这是您的控制台应用程序代码。它引用了你的应用程序项目,除了从你的应用程序项目中请求计算结果之外,再把结果输出到控制台。
  • MVC WebAPI项目:这也只是引用你的应用程序项目。您的WebAPI Web服务调用将从您的应用程序项目中请求计算结果,然后将其返回给调用者。

这对你来说管理起来要简单得多。此外,您可以轻松地单元测试执行计算的Application项目类方法。

+0

非常感谢。我怀疑我需要重构整个解决方案,但我对网络应用程序很陌生,以至于我不确定如何继续。还有一个问题 - 这个设置适合与每隔几秒更新一次的SQL数据库一起工作,并通过WebAPI输出实时计算数据。我创建这个项目的最终目标是我可以发送的URL,它将不断显示基于实时更新SQL数据库的更新计算。该URL将发送给我工作中的人员进行实时监控。 – tommygun

+1

可能。如果您试图频繁更新带有实时数据的用户界面,则有两种选择:轮询Web服务或WebSockets框架,该框架可保持与客户端的连接处于打开状态,并可根据需要推送数据。由于您已经在使用.NET,因此该WebSockets框架可能是SignalR。轮询Web服务比较简单,但规模很小。如果您只有几个用户,而且这需要快速和肮脏地完成,请使用轮询来处理您的Web服务。否则,看看SignalR。 –

+1

欣赏帮助。 – tommygun

相关问题