我们已经使用reflector查看了一些框架类,并注意到一些方法和属性具有以下属性

[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]

我很确定我在别的地方也看到过上面的 comments ,没有跟进过.

有人能告诉我这在C#和其他语境中意味着什么吗?

推荐答案

它告诉NGen,即使在不同的程序集中,也可以内联应用它的方法.

例如:

  • String.Equals[TargetedPatchingOptOut]
  • 你写了一个调用String.Equals的程序
  • 为了获得最佳性能,您可以在此程序上运行NGen
  • NGen将内联String.Equals调用,用方法中的实际代码替换方法调用指令

然而,如果微软在String.Equals中发现了安全漏洞,他们就不能只更新mscorlib.dll,因为这不会影响你刚刚创建的程序集(因为它有未引用String.Equals的原始机器代码)

请注意,此属性仅在.NET Framework程序集中有用.你自己并不需要它.你可以在这里找到更多信息:https://stackoverflow.com/a/14982340/631802

.net相关问答推荐

Docker镜像mcr.microsoft.com/dotnet/aspnet:8.0不能在Windows上构建

如何运行大量阻塞/同步 I/O 操作

在 C# DllImport 中使用 32 位或 64 位 dll

一种消耗(所有字节)BinaryReader 的优雅方式?

如何在 C# 4.0 中使任务进入睡眠状态(或延迟)?

使用 C# 清除文本文件的内容

如何在 WPF 应用程序中使用 App.config 文件?

实体框架无法加载指定的元数据资源

如何从 .net 中的数组类型获取数组项类型

如何在不丢失数据的情况下重命名 Entity Framework 5 Code First 迁移中的数据库列?

日期时间是什么意思?在 C# 中是什么意思?

C#:获得完整的桌面大小?

如何在我的 C# 程序的面板中运行另一个应用程序?

从 Windows 窗体打开 URL

什么是 ToString("N0") 格式?

EF Core 添加迁移构建失败

通过反射查找可空属性的类型

如何从文件中删除单个属性(例如只读)?

将 SignalR 2.0 .NET 客户端重新连接到服务器集线器的最佳实践

如果选中,则更改列表框项的 WPF DataTemplate