SYSLIB0042:ECC 型別上的 FromXmlString 和 ToXmlString 已淘汰
從 .NET 7 開始,在橢圓曲線密碼編譯 (ECC) 型別上的 FromXmlString
和 ToXmlString
方法已淘汰。 在程式碼中使用這些 API 會導致在編譯時期產生警告 SYSLIB0042
。 這些方法從未實作過,而且會一律擲回 PlatformNotSupportedException 例外狀況。 淘汰會影響下列方法:
- ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- ECDiffieHellmanCngPublicKey.FromXmlString(String)
- ECDiffieHellmanCngPublicKey.ToXmlString()
- ECDiffieHellmanPublicKey.ToXmlString()
- ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- ECDsaCng.ToXmlString(ECKeyXmlFormat)
因應措施
使用標準資料格式來交換橢圓曲線 (EC) 金鑰。
請根據您想要的是公開或私密金鑰,使用 ExportSubjectPublicKeyInfo
或 ExportPkcs8PrivateKey
代替 ToXmlString
。
請根據您想要匯入公開或私密金鑰,使用 ImportSubjectPublicKeyInfo
或 ImportPkcs8PrivateKey
代替 FromXmlString
。
隱藏警告
若您必須使用已淘汰的 API,您可以在程式碼或專案檔中隱藏警告。
若要只隱藏單一違規,請將前置處理器指示詞新增至原始程式碼檔案,以停用並重新啟用警告。
// Disable the warning.
#pragma warning disable SYSLIB0042
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0042
若要隱藏專案中的所有 SYSLIB0042
警告,請將 <NoWarn>
屬性新增至專案檔。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0042</NoWarn>
</PropertyGroup>
</Project>
如需詳細資訊,請參閱隱藏警告。