0

我已经将 ac# 控制台应用程序放在一起,该应用程序运行一个旨在下载简单 pdf 文档的 Web 服务。我可以返回该对象,但是我似乎无法弄清楚如何将 pdf 对象保存到文件中。

ServiceName.ImageResponse responseObject = Response.GetDocument(12345);
MemoryStream ms = new MemoryStream(responseObject.Document);
//System.Drawing is the problem (namespace can't be used in a Web Service)
System.Drawing.Image Img = System.Drawing.Image.FromStream(ms);
Img.Save("c:\\saved.JPG");

这不是编译,因为我收到(System.Drawing 下的红色 squiqly 行和)以下错误:

错误 1 ​​命名空间“系统”中不存在类型或命名空间名称“绘图”(您是否缺少程序集引用?)

http://msdn.microsoft.com/en-us/library/system.drawing.aspx声明如下:

注意事项注意事项 System.Drawing 命名空间中的类不支持在 Windows 或 ASP.NET 服务中使用。尝试从这些应用程序类型之一中使用这些类可能会产生意想不到的问题,例如服务性能下降和运行时异常。有关受支持的替代方法,请参阅 Windows 映像组件。

我只是想知道是否有其他方法。我似乎无法弄清楚。

4

1 回答 1

0

投石机可能是正确的。检查以确保您确实完成了添加对所需 dll 的引用的工作。命名空间与 .dll 文件没有一对一的对应关系,这是值得的。

至于这个:

不支持在 Windows 或 ASP.NET 服务中使用 System.Drawing 命名空间中的类。尝试从这些应用程序类型之一中使用这些类可能会产生意想不到的问题,例如服务性能下降和运行时异常。有关受支持的替代方法,请参阅 Windows 映像组件。

我不确定,但我的猜测是 System.Drawing 命名空间中的几个组件期望进程可以访问窗口站、桌面等,这是您会看到运行时异常的地方. 我会赌一把,看看它是否有效(一旦你修复了编译错误)。他们在这里真正想说的是“如果这坏了不要打电话给我们”:)

于 2012-12-06T21:46:31.280 回答