typeof().GetTypeInfo().Assembly 与 typeof().Assembly

And*_*Cox 5 c#

我已经看到以下代码的示例:

typeof(Type).GetTypeInfo().Assembly
Run Code Online (Sandbox Code Playgroud)

和...

typeof(Type).Assembly
Run Code Online (Sandbox Code Playgroud)

当我进行实验时,我看不出有什么不同。甚至智能感知也会返回相同的文档。第一种似乎更为普遍。有没有理由使用一个而不是另一个?

Jon*_*eet 8

他们都做同样的事情。IIRC,在(几乎?)所有情况下Type.GetTypeInfo()都会返回。this

您会看到引用的原因type.GetTypeInfo().Assembly是该Type.Assembly属性以及许多其他反射成员不存在于 .NET Core 1.x 中。因此,如果您有使用反射的旧 .NET Framework 代码,则必须.GetTypeInfo()在各处进行洒水才能使其与 .NET Core 1.x 一起工作。

相同的代码继续适用于更现代版本的 .NET Core 和 .NET,但我怀疑许多人(例如我自己)并没有费心去删除所有现在冗余的GetTypeInfo()调用。


Qui*_*ith 2

我只是想知道完全相同的事情。

看起来它可能TypeInfoType.

以下片段摘自这篇文章

type 与 typeinfo - dailydotnettips

编辑:

正如 Jon 正确指出的那样,这对于 Assembly 属性来说不会更轻量。看来我并不是想知道完全相同的事情,而是试图理解Type和之间的区别,这里TypeInfo解释了。