首页 > 解决方案 > 将 System.Drawing.Common.Bitmap (.NET Standard 2.0) 传递给期望 System.Dwawing.Bitmap (.NET 4.7.2) 的类

问题描述

我正在将一些类库从 .NET 4.7.2 转换为 .NET Standard(以便其他标准/核心程序集可以更好地使用它们),并且我遇到了特定第三方库的问题。这个库执行图像处理,它的许多类的方法从经典命名空间中获取Image或对象。BitmapSystem.Drawing

我找到了System.Drawing.Common包含兼容性类的 .NET Standard 包,因此我自己在源代码中使用这些类可以正常工作。但是当我尝试将这些类之一传递到这个库中时,我得到一个错误:

对“位图”类型的引用声称它在“System.Drawing”中定义,但找不到

我想我明白这里发生了什么(类型在程序集中定义了不同的名称,所以它们是不同的类型)。但是有没有办法让这些工作原样?还是需要第三方库的供应商在他们这边进行更改以支持 .NET Standard?

标签: c#.net.net-standard

解决方案


System.Drawing不是 .NET Standard 的一部分,因此类型不兼容。

此外,我不会使用System.Drawing.Common它,因为它只是 GDI+ 的一个包装器,在服务器端代码等多线程环境中效果不佳。

我建议转移到ImageSharpSkiaSharp,这两者都应该适用于您的所有项目。


推荐阅读