настоящее время я читаю контроллеры от узла с нижеОпределить MethodInfo, который имеет HttpPost() атрибут
Public Shared Function GetControllers() As List(Of Type)
' Go through all assemblies referenced by the application and search for
' controllers and controller factories.
Dim controllerTypes As New List(Of Type)()
Dim Assemblies = AppDomain.CurrentDomain.GetAssemblies
For Each assembly As Reflection.Assembly In Assemblies
Dim typesInAsm As Type()
Try
typesInAsm = assembly.GetTypes()
Catch ex As Reflection.ReflectionTypeLoadException
typesInAsm = ex.Types
End Try
controllerTypes.AddRange(typesInAsm.Where(AddressOf IsControllerType))
Next
Return controllerTypes
End Function
Затем список, который я только заселена используется, чтобы прочитать все действия теперь я пытаюсь отфильтруйте те, которые имеют HTTPPost.
Public Shared Sub GetActionMethods(Controllers As List(Of Type))
For Each y In Controllers
Dim selector = New ActionMethodSelector(y)
Dim allValidMethods As New List(Of Reflection.MethodInfo)()
allValidMethods.AddRange(selector.AliasedMethods)
allValidMethods.AddRange(selector.NonAliasedMethods.SelectMany(Function(g) g))
Dim z = allValidMethods.ToArray()
Next
End Sub
Дело в том, что я не знаю, как настроить, где это сделать через linq. Я пробовал различные методы, но всегда получаю пустой список.
Dim k = (From o As Reflection.MethodInfo In allValidMethods
Select o).ToArray