如何在光盘上为文件指定物理路径,但是访问内存位置?

时间:2009-12-09 14:37:50

标签: .net file memory inputstream

我正在尝试集成多个组件来构建自定义报告解决方案。其中一个组件是基于模板的报告生成器。它读取包含占位符的RTF文件的模板并执行替换。这很好用,并生成一个RTF报告。

虽然它可以将结果生成为流而不是物理RTF文件,但它具有一个属性,用于指定模板(输入)文件的全名。这在桌面应用程序上没问题,但在谈到WCF服务时,我想避免在HD中使用物理文件。

所有模板都存储在数据库中。应用程序将其作为流从那里读取,然后将其作为RTF文件保存到HD。 我想知道在c#中是否有可能以一种“虚拟”或“虚构”路径指定字符串的方式“欺骗”报告生成器,然后组件将打开来自内存流的模板,因为它是光盘上的真实物理路径。

任何帮助将不胜感激。

提前致谢,

的Gonzalo

3 个答案:

答案 0 :(得分:2)

根据报告解决方案的工作方式,您可以使用命名管道。有关详细信息,请参阅this MSDN page,但基本要点是您可以调用CreateNamedPipe并指定要使用的名称(使用该MSDN页面上列出的格式),然后将该名称作为文件传递报告解决方案的名称。

答案 1 :(得分:1)

答案 2 :(得分:0)

如果RTF库支持使用WebRequest从互联网加载RTF文件,您可以致电WebRequest.RegisterPrefix让其为特定WebRequest调用您自己的Uri课程。如果它仅对以WebRequest开头的路径使用http,则可以注册前缀http://MyNonExistantDomain.internal/