如何将web服务中使用的位图类转换为C#应用程序中的System.Drawing.Bitmap?
我正在使用asp.net web服务,它有一个接受位图参数的方法。在C#winforms应用程序中进行服务引用并尝试将位图发送到此web服务引用时 我的服务器端web服务代码是:如何将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"));
[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类型。但这并不适用于所有类型。