Предоставить пространство имен C # от IronPython - PullRequest
1 голос
/ 08 апреля 2011

Я хочу написать дополнение Tomboy, используя IronPython, и я застрял и в самом начале - мне нужно предоставить пространство имен C #.

Я имею в виду, вот как написать дополнение к Tomboy.http://live.gnome.org/Tomboy/HowToCreateAddins

Начнем с создания файла плагина с именем InsertDateTime.cs со следующим содержимым:

using Tomboy;

namespace Tomboy.InsertDateTime
{
        public class InsertDateTimeAddin : NoteAddin
        {
                public override void Initialize ()
                {
                }

                public override void Shutdown ()
                {
                }

                public override void OnNoteOpened ()
                {
                }
        }
}

Можно ли сделать это с IronPython?Спасибо.

1 Ответ

0 голосов
/ 11 апреля 2011

Из Python вы можете импортировать модуль clr и затем вызывать clr.AddReference ('AssemblyName'), где имя сборки - это частичное или полное имя сборки - возможно, в вашем случае это Tomboy, это то, что вы компилируете с помощью C #. Затем вы можете выполнить «импорт Tomboy» или «из Tomboy import NoteAddin».

Если вы размещаете IronPython через API-интерфейсы хостинга, вы можете вместо этого выполнить scriptRuntime.LoadAssembly (typeof (NoetAddin) .Assembly); так что вам не нужно делать это в Python. Это может быть особенно полезно, чтобы избежать различных проблем контекста загрузчика в зависимости от того, как загружается сборка.

...