#python #.net #python-3.x #python.net
#python #.net #python-3.x #python.net
Вопрос:
Я пытаюсь импортировать .net dll в python и хотел бы выяснить, как узнать, какие модули доступны.
import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import Form
После clr.Строка addReference как я могу увидеть, что доступно для импорта? Я хотел бы знать эту систему.Windows.Формы доступны, и эта форма доступна.
У меня есть внутренняя .net dll, с которой я пытаюсь работать, и я не мог понять, как посмотреть, какие модули мне нужно вызвать без примера. Как только я понял это, я могу увидеть, что доступно с помощью чего-то вроде
form = Form()
print(dir(form))
Я смог получить необходимую мне информацию с помощью следующего кода:
dll_ref = System.Reflection.Assembly.LoadFile(full_path)
print(dll_ref.FullName)
print(dll_ref.Location)
for i in range(len(dll_ref.DefinedTypes)):
print(dll_ref.DefinedTypes[i])
Ответ №1:
Существуют инструменты, которые могут показать вам элементы в .NET DLL. Одним из них является обозреватель объектов в Visual Studio. Существует также бесплатный инструмент от JetBrains под названием dotPeek.
Если вы хотите сделать это из Python, вам нужно либо dir
использовать пространство имен, которое вы должны знать заранее, либо использовать.СЕТЕВОЕ отражение для проверки DLL программно.
Комментарии:
1. Спасибо за помощь. Я попробовал приведенный ниже код и получил то, что мне было нужно. dll_ref = System. Отражение. Сборка. LoadFile(full_path) print(dll_ref. Полное имя) print(dll_ref.Location) для i в диапазоне(len(dll_ref.DefinedTypes)): print(dll_ref.DefinedTypes[i])