如何在wpf和asp.net之间共享图像?

时间:2012-10-14 13:21:18

标签: asp.net .net wpf

我有3个项目的vs解决方案

MyCore:类库,包含DAL,BLL,辅助函数等...

MyWebsite: asp.net网站,其中引用了MyCore

MyApplication :也引用了MyCore的wpf应用

此设置允许我重复使用网站和应用中的所有相同功能。

唯一的问题是图像。现在我在网站上单独保存所有图标(并通过他们的网址访问)以及桌面应用程序(作为资源访问)

有什么方法可以以某种方式将图标存储在MyCore中并在两个项目中使用它们?

任何想法?

非常感谢你们的时间和耐心

1 个答案:

答案 0 :(得分:1)

一种简单而直接的前进方式是将所有图像放在一个单独的类(或在MyCore中的情况下)作为Ressource(将访问修饰符转为公开!)。

此时您可以使用HTTPHandler作为ImageHandler,它将您的资源文件的图像作为“普通”图像流式传输到您的网页,例如

public class ImageHandler : IHttpHandler
{
  public void ProcessRequest(HttpContext context)
  {
    context.Response.ContentType = "image/jpg";
    context.Response.Clear();

    Bitmap image = ClassLibrary1.Resource1._1346135638012;
    image.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

  }

  public bool IsReusable
  {
    get
    {
        return false;
    }
   }
 }

您可以使用get参数来识别哪些图像必须流式传输,例如

<image src="./ImageHandler.ashx?ImageId=123" />

而且 - 当然 - 你也可以使用你的应用程序的ressoures。