Type类在哪里?

时间:2012-04-26 14:50:01

标签: vb.net

我刚开始学习vb.net。 但我无法找到System.Type类的位置。 我用Google搜索,但无法找到任何答案。 这是我做的:

Module m
Sub Main(ByVal e as String())
Dim ass as Assembly = Assembly.LoadFrom(e(0))
Dim assobj as Type() = ass.GetTypes()
For Each m As Type In assobj
Console.WriteLine(m.Name)
next

我将目录更改为C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727>并提供System.dll作为参数 但我找不到Type class

那么,Type类在哪里?

如果出现任何问题,请忽略我的无知。 谢谢。

你好, 我有另一个问题,我上面提到的整个事情是关于制作类似于java的javap.exe实用程序的控制台应用程序

如果您将类fullname作为参数,那么它应该打印有关该类的实质信息。

问题是 - 我怎么知道加载哪个.dll文件取决于我给出的类名作为输入???(这就是为什么我期望System.Type将在System.dll文件中)

2 个答案:

答案 0 :(得分:2)

我使用ILSpy(免费工具)来看看。它位于mscorlib.dll

答案 1 :(得分:2)

像Michal和Lister先生所说的那样是在mscorlib.dll中。

我发现它是一种不同的方式,如果采取你的代码

Dim assobj as Type() = ass.GetTypes()

并右键单击单词Type并按“Go To Definition”(快捷键F12)

VB.net& amp;默认显示略有不同C#。 (无论如何,对我来说)

对于VB.Net:

您将看到对象浏览器,您可以注意到Type是系统成员
 Definition of Type in Object Browser

如果您点击系统,您会发现它是mscorlib的成员。如果单击mscorlib,则可以看到DLL实际存储的位置。

Definition of System in Object Browser

<小时/> 如果您使用的是C#,那么您将看到:

#region Assembly mscorlib.dll, v4.0.30319
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\mscorlib.dll
#endregion

using System.Diagnostics;
using System.Globalization;
using System.Reflection;
using System.Runtime;
using System.Runtime.InteropServices;
using System.Security;

namespace System
{
    // Summary:
    //     Represents type declarations: class types, interface types, array types,
    //     value types, enumeration types, type parameters, generic type definitions,
    //     and open or closed constructed generic types.
    [Serializable]
    [ClassInterface(ClassInterfaceType.None)]
    [ComDefaultInterface(typeof(_Type))]
    [ComVisible(true)]
    public abstract class Type : MemberInfo, _Type, IReflect
    {
        //snip
    }
}