.NET 5+ 中已过时的功能
从 .NET 5 开始,一些新标记为已过时的 API 使用 ObsoleteAttribute 上的两个新属性。
ObsoleteAttribute.DiagnosticId 属性指示编译器使用自定义诊断 ID 产生生成警告。 通过自定义 ID 可专门、单独地取消过时警告。 对于 .NET 5+ 过时,自定义诊断 ID 的格式为 SYSLIB0XXX。
ObsoleteAttribute.UrlFormat 属性指示编译器包含一个 URL 链接,可了解有关过时的详细信息。
如果由于使用过时的 API 而遇到生成警告或错误,请遵循参考部分中列出的诊断 ID 所提供的特定指导。 不能使用过时类型或成员的标准诊断 ID (CS0618) 取消有关这些过时类型或成员的警告或错误;请改用自定义 SYSLIB0XXX 诊断 ID 值。 有关详细信息,请参阅取消警告。
参考
下表提供了 .NET 5+ 中 SYSLIB0XXX 过时的索引。
诊断 ID
警告或错误
说明
SYSLIB0001
警告
UTF-7 编码不安全,因此不应使用。 请考虑改用 UTF-8。
SYSLIB0002
错误
PrincipalPermissionAttribute 不受运行时支持,不得使用。
SYSLIB0003
警告
运行时不支持或不接受代码访问安全性 (CAS)。
SYSLIB0004
警告
不支持受约束的执行区域 (CER) 功能。
SYSLIB0005
警告
不支持全局程序集缓存 (GAC)。
SYSLIB0006
警告
Thread.Abort() 不受支持并会引发 PlatformNotSupportedException。
SYSLIB0007
警告
不支持此加密算法的默认实现。
SYSLIB0008
警告
CreatePdbGenerator() API 不受支持并会引发 PlatformNotSupportedException。
SYSLIB0009
警告
AuthenticationManager.Authenticate 和 AuthenticationManager.PreAuthenticate 方法都不受支持并会引发 PlatformNotSupportedException。
SYSLIB0010
警告
某些远程处理 API 不受支持并会引发 PlatformNotSupportedException。
SYSLIB0011
警告
BinaryFormatter 序列化已过时,不应使用。
SYSLIB0012
警告
包含 Assembly.CodeBase 和 Assembly.EscapedCodeBase 只是为了实现 .NET Framework 兼容性。 请改用 Assembly.Location。
SYSLIB0013
警告
在某些情况下,Uri.EscapeUriString(String) 可能会导致 Uri 字符串损坏。 请考虑改用 Uri.EscapeDataString(String) 查询字符串组件。
SYSLIB0014
错误
WebRequest、HttpWebRequest、ServicePoint 与 WebClient 已过时。 请改用 HttpClient。
SYSLIB0015
警告
DisablePrivateReflectionAttribute 在 .NET 6+ 中不起作用。
SYSLIB0016
警告
为改善性能并减少分配,使用接受参数的 Graphics.GetContextInfo 重载。
SYSLIB0017
警告
强名称签名不受支持并引发 PlatformNotSupportedException。
SYSLIB0018
警告
仅反射加载不受支持并引发 PlatformNotSupportedException。
SYSLIB0019
警告
不再支持 System.Runtime.InteropServices.RuntimeEnvironment 成员 SystemConfigurationFile、GetRuntimeInterfaceAsIntPtr(Guid, Guid) 与 GetRuntimeInterfaceAsObject(Guid, Guid) 并引发 PlatformNotSupportedException。
SYSLIB0020
警告
JsonSerializerOptions.IgnoreNullValues 已过时。 若要在序列化时忽略 null 值,请将 DefaultIgnoreCondition 设为 JsonIgnoreCondition.WhenWritingNull。
SYSLIB0021
警告
派生的加密类型已过时。 请改为对基类型使用 Create 方法。
SYSLIB0022
警告
Rijndael 和 RijndaelManaged 类型已过时。 请改用 Aes。
SYSLIB0023
警告
RNGCryptoServiceProvider 已过时。 若要生成随机数,请改为使用 RandomNumberGenerator 静态方法之一。
SYSLIB0024
警告
不支持创建和卸载 AppDomains,并引发异常。
SYSLIB0025
警告
SuppressIldasmAttribute 在 .NET 6+ 中不起作用。
SYSLIB0026
警告
X509Certificate 和 X509Certificate2 是不可变的。 使用适当的构造函数创建新证书。
SYSLIB0027
警告
PublicKey.Key 已过时。 使用适当的方法获取公钥,如 GetRSAPublicKey()。
SYSLIB0028
警告
X509Certificate2.PrivateKey 已过时。 使用适当的方法获取私钥(例如 RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2)),或使用 X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) 方法创建一个具有私钥的新实例。
SYSLIB0029
警告
ProduceLegacyHmacValues 已过时。 不再支持生成旧的 HMAC 值。
SYSLIB0030
警告
HMACSHA1 始终使用平台提供的算法实现。 使用不带 useManagedSha1 参数的构造函数。
SYSLIB0031
警告
CryptoConfig.EncodeOID(String) 已过时。 使用 System.Formats.Asn1 中提供的 ASN.1 功能。
SYSLIB0032
警告
不支持从进程状态已损坏异常中恢复;将忽略 HandleProcessCorruptedStateExceptionsAttribute。
SYSLIB0033
警告
Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) 已过时,不受支持。 请改用 PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[])。
SYSLIB0034
警告
CmsSigner(CspParameters) 已过时。 请改用替代的构造函数。
SYSLIB0035
警告
SignerInfo.ComputeCounterSignature() 已过时。 请改用接受 CmsSigner 的重载。
禁止显示警告
建议尽可能使用可用的解决方法。 但是,如果无法更改代码,可以通过 #pragma 指令或 <NoWarn> 项目设置来禁止显示警告。 如果必须使用过时 API,并且 SYSLIB0XXX 诊断没有显示为错误,则可以在代码或项目文件中取消该警告。
若要禁止显示代码中的警告,请执行以下操作:
// Disable the warning.
#pragma warning disable SYSLIB0001
// Code that uses obsolete API.
//...
// Re-enable the warning.
#pragma warning restore SYSLIB0001
若要禁止显示项目文件中的警告,请执行以下操作:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<!-- NoWarn below suppresses SYSLIB0001 project-wide -->
<NoWarn>
.NET 5+ 中已过时的功能的更多相关文章
- 解决Maven项目编译时提示:源值1.5已过时,将在未来所有版本中删除
每次编译项目时,都提示:源值1.5已过时,将在未来所有版本中删除 查了一些资料,发现是因为IDEA默认把项目的源代码版本设置为jdk1.5,目标代码设置为jdk1.5 解决方案: 修改Maven的S ...
- 使用IDEA运行项目时提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
如图 在使用IDEA运行项目时,在下方提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除 这是因为JDK版本问题 解决方法如下:左上角 file ——> Projec ...
- 解决idea中maven默认jdk为1.5的问题 : IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除
解决idea中maven默认jdk为1.5的问题 最近运行总是报警告: IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除 发现是jdk版本问题, 即使自己修改structure中的 ...
- Error:(12, 24) 警告: [deprecation] android.hardware中的Camera已过时.android
问题:android studio编译项目时出现: Error:(12, 24) 警告: [deprecation] android.hardware中的Camera已过时 解决:(只是让其不提示) ...
- Android编程 高德地图 AMapLocationClientOption 类中 setWifiActiveScan过时
高德地图中 定位包中有以下方法: AMapLocationClientOption 类中 setWifiActiveScan 过时 isWifiActiveScan public boole ...
- WCF学习之旅—WCF4.0中的简化配置功能(十五)
六 WCF4.0中的简化配置功能 WCF4.0为了简化服务配置,提供了默认的终结点.绑定和服务行为.也就是说,在开发WCF服务程序的时候,即使我们不提供显示的 服务终结点,WCF框架也能为我们的服务提 ...
- Windows 10 版本 1507 中的新 AppLocker 功能
要查看 Windows 10 版本信息,使用[运行]> dxdiag 回车 下表包含 Windows 10 的初始版本(版本 1507)中包括的一些新的和更新的功能以及对版本 1511 的 W ...
- 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
[背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是 ...
- 无法将分支 master 发布到远程 origin,因为远程存储库中已存在具有同一名称的分支
无法将分支 master 发布到远程 origin,因为远程存储库中已存在具有同一名称的分支.发布此分支将导致远程存储库中的分支发生非快进更新. 第一次用oschina的git设置完远程仓库后提交出现 ...
随机推荐
- cocos2dx 入口函数分析
以下是main函数最开始的两段,也是cocos2d一开始执行的地方: AppDelegate app; return Application::getInstance()->run(); 接下来 ...
- MySQL 5.7主从搭建(同一台机器)
主从复制原理:复制是 MySQL 的一项功能,允许服务器将更改从一个实例复制到另一个实例. 1)主服务器将所有数据和结构更改记录到二进制日志中. 2)从属服务器从主服务器请求该二进制日志并在本地应用其 ...
- service层 必须做业务逻辑的处理
package com.aaa.zxf.service; import com.aaa.zxf.mapper.BookMapper; import com.aaa.zxf.model.Book; im ...
- 集合remove()方法相关问题
学习集合的过程中,了解到一个有关于remove()方法的有关特性,特此记录 首先remove方法的格式: collection.remove(Object o); 这是指对集合collection内的 ...
- 从我做起[原生DI实现模块化和批量注入].Net Core 之一
实现模块化注册 .Net Core实现模块化批量注入 我将新建一个项目从头开始项目名称Sukt.Core. 该项目分层如下: Sukt.Core.API 为前端提供APi接口(里面尽量不存在业务逻辑, ...
- 「YNOI2016」自己的发明
「YNOI2016」自己的发明 不换根 基本的莫队吧... 子树直接转到dfs序上. 其余部分可以见 「SNOI2017」一个简单的询问. 换根 根root,查询x,分3种: root不在x子树内,按 ...
- 湖人季后赛淘汰出局 - For James 2021.6.4
今天有NBA季后赛湖人主场对太阳的G6比赛,之前湖人2-3落后,这场比赛输了就被淘汰了.上午特意看了比赛的直播,期望着湖人能赢下这场,这样还有打G7的机会,也就还有进入下一轮的机会.最后湖人还是输了这 ...
- Linux-一次执行多个命令 ; && ||
一次执行多个命令,多个命令之间用:号隔开 cmd1;cmd2:cmd3 这样前后执行的时候没有依赖性,如果有下列要求呢 1. cmd1执行失败那就不要执行后面的命令 2. cmd1失败了才去指令后面的 ...
- js实现用按钮控制网页滚动、以及固定导航栏效果
实现效果如下: 页面内有三个按钮,分别控制页面向上.向下移动,以及暂停,并设置有导航栏,在滚动到某一位置时显示.且当用户主动控制鼠标滑轮时,滚动效果自动关闭.本页面只是演示如何实现,进行了简单的布局, ...
- Python接口自动化测试_悠悠
https://yuedu.baidu.com/ebook/585ab168302b3169a45177232f60ddccda38e695###