如何通过在派生类中反映受保护成员来获取代码?

时间:2014-10-29 14:22:38

标签: .net vb.net reflection

我试图通过反射获取派生类的受保护方法的代码。

我们有一个带有一些可覆盖的受保护方法的基类,我感兴趣的是 DefineSubdomain

方法如下:

Protected Overrides Sub DefineSubdomains()
    With SubdomainDefs
        .Add("PurchaseOrderItemLine", requiredForAdd:=False)
        .Add("PurchaseOrderMiscLine", requiredForAdd:=False)
        .Add("PurchaseOrderWOLine", requiredForAdd:=False)
    End With
End Sub

我希望检索Add方法的第一个参数。我可以参考该方法,但我无法弄清楚如何阅读代码。我用过这个:

    SomeAssembly = Assembly.LoadFrom(mconAppPath & "\AO_PurchaseOrder.dll")

    Types = SomeAssembly.GetTypes
    For Each ThisType In Types

        If ThisType.IsClass Then

            If ThisType.Name = "AO_PurchaseOrder.imsAO_PurchaseOrder" Then
                ThisFunction = ThisType.GetMethod("DefineSubdomains", BindingFlags.Instance Or BindingFlags.NonPublic)
                'What now?
            End If

        End If

    Next

对于示例,我只需要文本" PurchaseOrder"," PurchaseOrderMiscLine" &安培; " PurchaseOrderWOLine&#34 ;.此应用程序中有超过700个域和子域,这就是我尝试使用代码查看依赖项的原因。我有源代码,但类的文件没有命名一致,反射看起来更容易。如果有人有想法阅读源代码,可能更容易对它开放。但是有些项目的命名与域名不同,有些项目在不同的目录中。我对域的唯一元数据是程序集名称和类名。

0 个答案:

没有答案