Я пишу надстройку Excel, в которой размещается IronPython 1.1, и я хочу предоставить COM-объект Excel.Application экземпляру PythonEngine.
Мой С# может нормально обращаться к членам COM-объекта. Однако, когда мой сценарий IronPython обращается к элементам COM-объекта, я получаю «System.ArgumentException: объект типа System.Int32 не может быть преобразован в тип System.UInt32&».
Вот мой код C#, на котором размещен IronPython 1.1:
public void ExecuteFile(string path) {
// see if COM object works
Debug.WriteLine(Globals.ThisAddIn.Application.ActiveWindow.Caption);
engine.Globals.Add("excel", Globals.ThisAddIn.Application);
try
{
engine.ExecuteFile(path);
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
}
и вот мой тестовый скрипт IronPython:
excel.ActiveSheet.Range['A1'].Value2 = 42
// выдает исключение, указанное выше