Я делал кучу поиска и чтения сегодня, и не понял, как правильно реализовать что-либо или даже определить, возможно ли это.Проблемы с импортом интерфейса C# в Python
Вот суть того, что я пытаюсь прямо сейчас. У меня есть приложение, которое загружает плагины через MEF. Плагины могут реализовывать различные интерфейсы, и, скажем, у меня один называется IDevice
. У меня была эта дурацкая идея, что, возможно, пользователь захочет написать свой собственный плагин Device в IronPython, и его IronPython просто должен наследовать от IDevice
и реализовать требуемые методы.
Теперь я знаю, что это можно реализовать интерфейс в IronPython, определив класс, как это:
class MyDevice(IDevice):
pass
Но я не могу пройти мимо первой проблемы - то, что правильный способ импортировать интерфейс?
Интерфейс чтения компакт-дисков определяется в отдельной сборке под названием MyInterfaces.dll так:
namespace Company.Shared.MyInterfaces
{
public interface IDevice
{
string GetName();
}
}
Я попытался import MyInterfaces
так как это наиболее логичная вещь, но это не сработало. Я также попробовал много менее логичных комбинаций import
s и from
s. Я всегда получаю следующее сообщение об ошибке:
ImportException occurred
No module named MyInterfaces
Я загрузил Process Monitor, чтобы увидеть, что мое приложение пытается загрузить, когда я выполнил свой сценарий, и он пытается загрузить файл с именем MyInterfaces, а затем попытается загрузить MyInterfaces.py. Ну, файл называется MyInterfaces * .dll *, поэтому я изменил свой оператор импорта на import MyInterfaces.dll
, но это не повлияло - мой код все равно попытается загрузить файл MyInterfaces. Я подтвердил, что все мои зависимости находятся в правильной папке.
Я чувствую себя слишком хромым за то, что не смог понять это, поэтому я надеюсь, что кто-то может указать мне в правильном направлении. Спасибо!
тьфу ... Я видел, что используется во многих примерах, приведенных в этой книге, но это просто не щелкнул для меня. Я попробую это сейчас, спасибо! – Dave
Нет проблем, надеюсь, что это сработает ... Я почти ничего не знаю о IronPython, но я имею в виду Гуглера. :) – cdhowie
мужчина ... :) спасибо. – Dave