Вы установили t
для экземпляра из MyClass
, но вы пытаетесь использовать его, как если бы это был сам класс.
Вам нужно будет либо импортировать MyClass
из скрипта IronPython, либо внедрить какой-то фабричный метод (поскольку классы не являются первоклассными объектами в C #, вы не можете напрямую передать MyClass
) , В качестве альтернативы вы можете передать typeof(MyClass)
и использовать System.Activator.CreateInstance(theMyClassTypeObject)
для создания нового экземпляра.
Так как вам также необходим доступ к MyEnum
(обратите внимание, что вы используете его в своем скрипте без каких-либо ссылок на то, откуда он может прийти), я предлагаю просто использовать импорт:
import clr
clr.AddReference('YourAssemblyName')
from YourAssemblyName.WhateverNamespace import MyClass, MyEnum
# Now these should work, since the objects have been properly imported
mc = MyClass()
me = MyEnum.One
Возможно, вам придется поиграться с типом источника сценария (я думаю, File
работает лучше всего) и путем выполнения сценария, чтобы вызов clr.AddReference()
был успешным.