VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 使用Reflection获取.NET组件的信息
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:7098, 日期:2003-08-29
    在.NET Framework中提供了System.Reflection命名空间,这样就使得我们可以方便的获得.NET组件的信息。当你想获得正在使用的组件的详细信息,或者在运行期间查询一个组件信息的时候,这个功能将变的十分有用。


在以下的代码中,我们将创建一个新组件对象,并且用它来加载System.Data组件。使用LoadFrom方法,可以通过组件集的路经和文件名来加载组件。但习惯上,该文件名须和System.Data中的一致。

Dim assemblyInfo As System.Reflection.Assembly
assemblyInfo = assemblyInfo.LoadFrom( _
        "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Data.dll")

下一步,我们将通过GetModules方法循环该组件从而获得该组件中的每一个模块,并使用GetTypes()方法来显示此程序集中定义的所有类型(或者类),还可以使用GetMethods.方法获取当前 Type 的特定方法。

Dim moduleInfo As System.Reflection.Module
Dim typeInfo As System.Type
Dim methodInfo As System.Reflection.MethodInfo

For Each moduleInfo In assemblyInfo.GetModules()

    Debug.WriteLine(moduleInfo.Name)
    Debug.Indent()
    For Each typeInfo In moduleInfo.GetTypes()
        Debug.WriteLine(typeInfo.Name)
        Debug.Indent()
        For Each methodInfo In typeInfo.GetMethods()
            Debug.WriteLine(methodInfo.Name)
        Next
    Next
Next