1
내 목표는 폴더에서 DLL을 열거하고 특정 인터페이스를 준수하는 클래스를 찾은 다음 해당 클래스에서 열거 형 값을 쿼리하는 것입니다. 아이디어는 '결과'의 가능성이 무엇인지를 묻는 것입니다.외부 어셈블리의 열거 형 값 반영하기
DLL을 정렬하고 작동하는 올바른 인터페이스를 따르는 클래스를 볼 수 있지만 다음 단계는 특정 enum 클래스를 검색하여 값을 가져 오는 것입니다. 다음을 사용했습니다. 코드 : -이 회원을 열거 알면서도
Private Sub GetOutcomeEnumValues(ByVal AssemblyPath As String, ByVal ClassName As String)
Dim ReflectedAssembly As Assembly
Dim ReflectedClass As Type
'Load DLL
ReflectedAssembly = System.Reflection.Assembly.LoadFrom(AssemblyPath)
'Load Class
ReflectedClass = ReflectedAssembly.GetType(ClassName)
'Load members
Dim Members() As MemberInfo
Members = ReflectedClass.GetMembers
For i As Integer = 0 To Members.Count - 1
'Check for the Outcomes enumeration
If (Members(i).Name = "Outcomes") Then
Dim Outcomes As System.Array
Outcomes = Members(i).GetType.GetEnumValues
End If
Next
End Sub
내가 가진 문제는 내가 회원 (i)는 나에게 열거 값을주고받을 수없는 것이다. 내가 'GetEnumValues'를 호출하면 예외가 발생합니다 :
는"열거 매개 변수 이름이어야합니다 제공을 입력합니다. : enumType"
클래스 I이
Public Class Foo
Public Enum Outcomes
OK
Cancel
End Enum
End Class