Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将web服务中使用的位图类转换为C#应用程序中的System.Drawing.Bitmap?_C#_Asp.net_Winforms_Web Services_Asp.net Web Api - Fatal编程技术网

如何将web服务中使用的位图类转换为C#应用程序中的System.Drawing.Bitmap?

如何将web服务中使用的位图类转换为C#应用程序中的System.Drawing.Bitmap?,c#,asp.net,winforms,web-services,asp.net-web-api,C#,Asp.net,Winforms,Web Services,Asp.net Web Api,我正在使用asp.net web服务,它有一个接受位图参数的方法。在C#winforms应用程序中进行服务引用并尝试将位图发送到此web服务引用时 我的服务器端web服务代码是: [WebMethod] public void SaveBitmapToServer(System.Drawing.Bitmap bitmap) { bitmap.Save(Server.MapPath("~/Images/bitmap.jpeg"));

我正在使用asp.net web服务,它有一个接受位图参数的方法。在C#winforms应用程序中进行服务引用并尝试将位图发送到此web服务引用时

我的服务器端web服务代码是:

[WebMethod]
        public void SaveBitmapToServer(System.Drawing.Bitmap bitmap)
        {
            bitmap.Save(Server.MapPath("~/Images/bitmap.jpeg"));
        }
private void button1_Click(object sender, EventArgs e)
        {
            ServiceReference1.MyWSSoapClient ws = new ServiceReference1.MyWSSoapClient();
            Bitmap bitmap = new Bitmap("E:\\Images\\1.jpg");
            ws.SaveBitmapToServer(bitmap);
        }
我的客户端winforms代码是:

[WebMethod]
        public void SaveBitmapToServer(System.Drawing.Bitmap bitmap)
        {
            bitmap.Save(Server.MapPath("~/Images/bitmap.jpeg"));
        }
private void button1_Click(object sender, EventArgs e)
        {
            ServiceReference1.MyWSSoapClient ws = new ServiceReference1.MyWSSoapClient();
            Bitmap bitmap = new Bitmap("E:\\Images\\1.jpg");
            ws.SaveBitmapToServer(bitmap);
        }
这是出现的错误消息:


我想知道如何使用
System.Drawing
reference而不是
ServiceReference1.Bitmap
reference来创建Web服务,或者如何从
System.Drawing.Bitmap
转换为
ServiceReference1.Bitmap
您可以使用字节数组来代替:

[WebMethod]
public void Save(byte[] bytes)
{
    //if for any reason you need to convert it back to image
    var image = (Bitmap)(new ImageConverter().ConvertFrom(bytes));
}

首先,您确实需要一个
servicerence1.Bitmap
自定义类吗?其次,如果你这样做了,它与标准的
System.Drawing.Bitmap
class有什么不同?@markbenningfield不,我不知道。我在web服务中使用了System.Drawing.Bitmap。但是visual studio自动将其转换为自定义的。大多数情况下,VS将包含类文件模板的
System.Drawing
命名空间。Winforms代码是否没有引用
System.Drawing
命名空间?没有,它只是引用名为ServiceReference1.BitMapListene的自定义类,看起来这是一个普通的、普通的“brainfart”。只需删除自定义类定义,并使用
System.Drawing
命名空间解决由此产生的类型引用错误。出于任何原因,如果我想在web服务中使用系统类,是否有方法阻止web服务将其转换为自定义类?添加web引用时,在“添加服务引用”的“高级”对话框中,有一些设置允许您重用.NET类型。但这并不适用于所有类型。