2011-04-08 4 views
1

IronPython을 사용하여 Tomboy 추가 기능을 작성하고 싶습니다. C#의 네임 스페이스를 제공해야합니다. 내 말은IronPython에서 C#의 네임 스페이스를 제공하십시오.

, 여기에 서면으로 하우투의 톰보이 부가 기능의 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

+0

카메론, 주제를 업데이트했습니다. 희망이 도움이) –

답변

0

Python에서 clr 모듈을 가져온 다음 어셈블리 이름이 부분 또는 전체 어셈블리 이름 인 clr.AddReference ('AssemblyName')를 호출 할 수 있습니다. 아마도 Tomboy의 경우에는 C# . 그런 다음 "Tomboy 가져 오기"또는 "Tomboy import NoteAddin"을 수행 할 수 있습니다.

호스팅 API를 통해 IronPython을 호스팅하는 경우 대신 scriptRuntime.LoadAssembly (typeof (NoetAddin) .Assembly); 그래서 당신은 파이썬에서 그것을 할 필요가 없습니다. 이는 어셈블리가로드되는 방식에 따라 다양한 로더 컨텍스트 문제를 피하는 데 특히 유용 할 수 있습니다.

+0

음 ...하지만 네임 스페이스를 제공하는 데 도움이되는 방법을 실제로 얻지는 못했습니다. IronPython의 Tomboy.InsertDateTime이라는 네임 스페이스가있는 어셈블리를 만들어야합니다. 어떻게해야합니까? (당신이 작성한 것은 IronPython의 기존 네임 스페이스를 사용하는 방법이지만 다른 방식으로해야합니다.) –

+0

아, 알겠습니다 ... IronPython 1.x의 CodeDom 공급자는 ASP.NET에서 IronPython 2.x를 지원했지만 그렇지 않습니다. 파이썬에서는별로 의미가 없습니다. –

관련 문제