将System.Drawing.Common.Bitmap(.NET Standard 2.0)传递给期望System.Drawing.Bitmap(.NET 4.7.2)的类

问题描述 投票:3回答:1

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

我发现.NET标准包System.Drawing.Common中有兼容性类,所以我自己在源代码中使用这些类工作正常。但是,当我尝试将其中一个类传递到此库时,我收到一个错误:

引用类型'Bitmap'声称它在'System.Drawing'中定义,但找不到它

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

c# .net .net-standard
1个回答
0
投票

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

另外,我不会使用System.Drawing.Common,因为它只是GDI +的包装器,在服务器端代码等多线程环境中不能很好地工作。

我建议你搬到ImageSharpSkiaSharp,这两个都适用于你所有的项目。

© www.soinside.com 2019 - 2024. All rights reserved.