根据文档,在命名空间System.Drawing
中应该有一个缩略图处理类。我想创建一个模型,其中包含一个图像属性,并将其保存到数据库中。但是,无论文档如何说明,当我尝试使用下面的代码时,都会出现在该命名空间中找不到该类的错误。
using System.Drawing;
public class Donkey
{
public Image Image { get;set; }
}
我错过了什么?!
我已经搜索过,但只找到了一些旧帖子和看起来无法正常工作的示例。
根据文档,在命名空间System.Drawing
中应该有一个缩略图处理类。我想创建一个模型,其中包含一个图像属性,并将其保存到数据库中。但是,无论文档如何说明,当我尝试使用下面的代码时,都会出现在该命名空间中找不到该类的错误。
using System.Drawing;
public class Donkey
{
public Image Image { get;set; }
}
我错过了什么?!
我已经搜索过,但只找到了一些旧帖子和看起来无法正常工作的示例。
尝试安装System.Drawing.Common
NuGet包。其中包含Image
和其他相关类型,如Bitmap
。
PM> Install-Package System.Drawing.Common
您还可以使用NuGet包管理器UI进行安装,方法是右键单击“解决方案资源管理器”中的解决方案,然后选择“管理NuGet程序包...”
以下是@KonradViltersten的澄清评论:
传统上,
System.Drawing
包含在完整的 .NET Framework 中, 但不包括在.NET Core 中,因为System.Drawing
基于 Windows 绘图方法。 .NET core 被设计为平台无关的,因此不包括任何特定于平台的内容(如绘图)。 由于这种功能如此受欢迎,微软发布了一个单独的程序集,可以安装以提供该功能。
自 .NET 6 开始,System.Drawing.Common
仅支持 Windows。请查看文档的 Recommended action 部分以了解替代方案:
要在跨平台应用程序中使用这些 API,请迁移到以下库之一:
System.Drawing.Image.FromStream
,但在 dotnet 7 中一直很顺利地没有用到它。很好奇发生了什么,但是添加它后问题都解决了。 - undefined