2011-04-08 61 views
1

我想寫假小子附加使用IronPython和我被困和最開始名字空間 - 我需要提供C#」,提供C#名字空間。「從IronPython的

我的意思是,這裏的HOWTO以書面假小子附加的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做到這一點?謝謝。

+0

「你提供C#的命名空間」是什麼意思?你能否進一步澄清? – Cameron 2011-04-09 06:49:49

+0

卡梅倫,我已經更新的話題。希望有幫助) – 2011-04-10 15:26:17

回答

0

從Python中,您可以導入clr模塊,然後調用clr.AddReference('AssemblyName'),其中程序集名稱是部分或全部程序集名稱 - 也許在您的情況下,它是Tomboy,它是您用C# 。然後,你可以做「進口假小子」或「從假小子進口NoteAddin」。

如果您是通過託管的API託管IronPython的可以改爲做scriptRuntime.LoadAssembly(typeof運算(NoetAddin).Assembly);這樣你就不必用Python來完成了。這可以是特別有用的,以避免因組件被如何裝載不同的加載器上下文問題。

+0

嗯......但我真的沒有得到如何幫助提供一個命名空間)我的意思是,我需要從IronPython構建一個名爲Tomboy.InsertDateTime的程序集。我怎樣才能做到這一點? (你寫的是如何從IronPython使用現有的命名空間,但我需要以不同的方式做到這一點)) – 2011-04-11 07:57:13

+0

哦,我明白了...... IronPython 1.x的CodeDom提供程序支持這樣做的ASP.NET,但IronPython 2.x不 - 這對Python來說並沒有多大意義。 – 2011-04-12 02:00:36