我正在努力将一些类库从.NET 4.7.2转换为.NET标准(以便其他标准/核心程序集可以更好地使用它们),并且我遇到了特定第三方库的问题。该库执行图像处理,其中许多类的方法采用经典Image
命名空间中的Bitmap
或System.Drawing
对象。
我发现.NET标准包System.Drawing.Common
中有兼容性类,所以我自己在源代码中使用这些类工作正常。但是,当我尝试将其中一个类传递到此库时,我收到一个错误:
引用类型'Bitmap'声称它在'System.Drawing'中定义,但找不到它
我想我明白这里发生了什么(类型是在具有不同名称的程序集中定义的,因此它们是不同的类型)。但有没有办法让这些工作按原样进行?或者它是否需要第三方库的供应商进行更改以支持.NET Standard?
System.Drawing
不是.NET Standard的一部分,因此类型不兼容。
另外,我不会使用System.Drawing.Common
,因为它只是GDI +的包装器,在服务器端代码等多线程环境中不能很好地工作。
我建议你搬到ImageSharp或SkiaSharp,这两个都适用于你所有的项目。