MemberInfo.元数据令牌在编译器运行时稳定

本文关键字:运行时 编译器 元数据 令牌 MemberInfo | 更新日期: 2023-09-27 18:11:42

在我们的应用程序中,我们需要一种在c#中唯一标识反射元数据对象的方法。反射API有一个MemberInfo.MetadataToken属性,它被记录下来完成这个任务。然而,没有文档说明的是,如果模块名、命名空间、声明类型名和成员名不变,那么在同一模块的下一次构建之后,这个令牌是否会相同。

有谁知道这个实现的细节吗?

MemberInfo.元数据令牌在编译器运行时稳定

不会的。元数据令牌值取决于程序集中的其他内容,以及编译器在输出程序集中生成类型的确切顺序。如果输入代码或项目以任何方式更改,则所有令牌都可以更改。

你为什么要这样做?