【发布时间】:2013-05-27 05:54:42
【问题描述】:
在多人和几个组件(网络应用程序、服务应用程序和其他一些)之间进行项目。我们将在 Web 应用程序的 Content 文件夹中存储一些信息,以便可以使用 href 从 Web 服务器直接访问它,但是 Web 应用程序之外的其他组件也需要访问此文件夹,因为我们正在共享多人之间使用绝对路径的项目不是一种选择。我们有什么选择?
编辑:试图解释得更好一点。
我所拥有的正是一个 Web 项目、一个只是 dll 的“数据项目”、一个作为另一个 dll 的“逻辑”项目和一个作为 exe/服务的服务项目。 Web 项目和服务项目都使用来自逻辑的方法,以及来自数据项目的逻辑。作为最后一个负责存储数据(在数据库中)和文件系统中的人。 这个“文件系统”路径应该是可配置的,我们的目标是把它放到 web 项目的内容文件夹中,这样就可以直接访问多媒体文件,而不是做一个字节流。
现在在 web.config(web 应用程序的配置文件)和 app.config(服务应用程序的配置文件)中,我可以设置 web/content 的绝对路径(两个配置文件相同)和data dll 可以毫无问题地使用它。现在的主要问题是我们不能在配置文件中放置绝对路径,因为每个人都在不同的计算机上工作,文件路径明显不同。因此,如果我可以在配置文件中编写类似: ~/project/Web/Content 而不是 C:/myfolder/stuff/blabla/project/web/content 的内容,并通过 ~ 解析项目的路径,这就是我想!或者关于如何在不添加硬编码的绝对路径的情况下与这些应用共享文件夹的更好想法。
【问题讨论】:
-
我们需要访问代码中的文件/目录,这些文件/目录位于 web 项目的特定文件夹中。而且使用绝对路径是行不通的。
-
您能否添加一些示例代码,说明您真正想在项目中做什么?
-
显示代码有点困难,但基本上,我有一个 web 项目和一个负责处理数据的 dll 项目。此 dll 需要找到/存储数据的路径,并且此 dll 将从 Web 应用程序和其他服务应用程序调用,因此它需要是绝对路径。然而,由于我们是几个人在做这个项目,我们不能真正为每个人都使用绝对路径。
-
在设计方面,该 dll 不应引用 Request 或 Server 对象。实际上,它所需要的只是:如何解析路径或根文件夹在哪里。因此,我会创建一个接口:IResolvePath { string Resolve() }。然后对于每个 Web 项目/服务,您可以提供正确的实现。
-
我不认为这会完成我正在寻找的东西。阅读我的编辑,我试图更好地解释它。