将“图片”框中的图像从“业务逻辑类”设置为“主应用程序类”
本文关键字:业务逻辑类 设置 应用程序 图片 图像 业务 | 更新日期: 2023-09-27 18:30:00
我根据软件体系结构编写了一个c#代码。在业务逻辑层中,我实现了一个代码,通过该代码可以从wikipediaapi中提取数据以获取图像。我想在应用层Form1.cs
上显示它。但它根本不起作用。我从维基百科获取图像的代码如下:
public class ImageService
{
private string _baseUrl = "https://en.wikipedia.org/w/api.php?action=query&format=json&prop=pageimages&pithumbsize=400&titles={0}";
public string GetImage(string name)
{
string requestUrl = string.Format(_baseUrl, name);
string result;
using (WebClient client = new WebClient())
{
var response = client.DownloadString(new Uri(_baseUrl));
var responseJson = JsonConvert.DeserializeObject<ImgRootobject>(response);
var firstKey = responseJson.query.pages.First().Key;
result = responseJson.query.pages[firstKey].thumbnail.source;
string Image_title = responseJson.query.pages[firstKey].title;
}
return result;
}
}
我的Form1.cs
是:
public partial class Form1 : Form
{
private readonly ImageService _imageService;
public Form1()
{
_imageService = new ImageService();
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.LoadAsync(_imageService);
}
}
您没有从返回字符串的ImageService
调用GetImage
方法。PictureBox
的LoadAsync
方法接受一个字符串作为它的参数,但你已经向它发送了一个ImageService
的实例。它应该是这样的:
pictureBox1.LoadAsync(_imageService.GetImage(a string parameter for name));