我刚开始学习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文件中)
答案 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是系统成员
如果您点击系统,您会发现它是mscorlib的成员。如果单击mscorlib,则可以看到DLL实际存储的位置。
<小时/> 如果您使用的是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
}
}