SYSLIB0043:ECDiffieHellmanPublicKey.ToByteArray 已过时
从 .NET 7 开始,以下方法已过时。 在代码中使用这些 API 会在编译时生成警告 SYSLIB0043
。
ECDiffieHellmanPublicKey.ToByteArray() 方法没有隐含的文件格式。 此外,对于内置实现,它会在所有非 Windows 操作系统上引发 PlatformNotSupportedException。 由于 ECDiffieHellmanPublicKey 还有一个标准格式导出(通过 ExportSubjectPublicKeyInfo() 方法),因此,较旧的成员已过时。
解决方法
如果要导出公钥值,请改用 ExportSubjectPublicKeyInfo() 方法。
对于新的派生类型(或当前不调用 ECDiffieHellmanPublicKey(Byte[]) 构造函数的现有派生类型),请不要调用受保护的 ECDiffieHellmanPublicKey(Byte[]) 构造函数,不要重写 ToByteArray() 以引发异常,也不要接受返回空数组的默认行为。
对于已调用受保护的 ECDiffieHellmanPublicKey(Byte[]) 构造函数的现有派生类型,请继续调用该构造函数并抑制 SYSLIB0043
警告。
抑制警告
如果必须使用已过时的 API,可在代码或项目文件中禁止显示警告。
若只想抑制单个冲突,请将预处理器指令添加到源文件以禁用该规则,然后重新启用警告。
// Disable the warning.
#pragma warning disable SYSLIB0043
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0043
若要禁止显示项目中的所有 SYSLIB0043
警告,请将属性 <NoWarn>
添加到项目文件。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0043</NoWarn>
</PropertyGroup>
</Project>
有关详细信息,请参阅取消警告。