Классовая программа класса IronPython. Видимость - PullRequest
0 голосов
/ 05 января 2012

Я новичок в IronPython, но использую Python уже много лет. Я унаследовал некоторые приложения на C # и хотел бы получить доступ к некоторым их классам через Python. Учитывая следующее C #:

namespace Updater {
    static class Program {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() {
            //Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault( false );
            Application.Run( new Form1() );
        }
    }
}

Когда я импортирую в Python:

>>> clr.AddReferenceToFile('Updater.exe')
>>> import Updater
>>> dir(Updater)
['Form1']

Почему программа не видна?

1 Ответ

2 голосов
/ 05 января 2012

Видимость по умолчанию для классов в C # - internal, поэтому IronPython не будет отображать класс Program. См. https://stackoverflow.com/a/3763638/129592 для получения дополнительной информации.

Вы можете исправить это, изменив объявление класса на

public static class Program {
    // etc.
}
...