SYSLIB0042: FromXmlString и ToXmlString в типах ECC устарели
FromXmlString
Типы шифрования с многоточием (ECC) являются устаревшими, ToXmlString
начиная с .NET 7. При их использовании во время компиляции создается предупреждение SYSLIB0042
. Они никогда не были реализованы и всегда вызывали PlatformNotSupportedException исключение. Обзоление влияет на следующие методы:
- ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- ECDiffieHellmanCngPublicKey.FromXmlString(String)
- ECDiffieHellmanCngPublicKey.ToXmlString()
- ECDiffieHellmanPublicKey.ToXmlString()
- ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- ECDsaCng.ToXmlString(ECKeyXmlFormat)
Обходное решение
Используйте стандартный формат данных для обмена ключами с многоточием (EC).
Вместо этого ToXmlString
используйте ExportSubjectPublicKeyInfo
или ExportPkcs8PrivateKey
в зависимости от того, хотите ли вы использовать открытый или закрытый ключ.
Вместо этого FromXmlString
используйте ImportSubjectPublicKeyInfo
или ImportPkcs8PrivateKey
в зависимости от того, нужно ли импортировать открытый или закрытый ключ.
Отключение предупреждений
Если необходимо использовать устаревшие 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>
Дополнительные сведения см. в разделе Отключение предупреждений.