0

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

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

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

任何帮助将不胜感激。

提前致谢,

贡萨洛

4

3 回答 3

2

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

于 2009-12-09T14:45:02.530 回答
1

在 C# 4 中,您可以使用内存映射文件:http ://weblogs.asp.net/gunnarpeipman/archive/2009/06/21/net-framework-4-0-using-memory-mapped-files.aspx

于 2009-12-09T14:40:23.067 回答
0

如果 RTF 库支持使用 加载来自 Internet 的 RTF 文件WebRequest,您可以调用WebRequest.RegisterPrefix以使其调用您自己WebRequest的特定Uris 类。如果它只用于WebRequest以 开头的路径,http则可以注册前缀http://MyNonExistantDomain.internal/

于 2009-12-09T14:50:07.600 回答