2011-08-09 133 views
1

我在C#的基類,這是像這樣應用屬性類,其繼承的C#基礎類

Class A 
    { 
    public ClassA() 
    { 

    } 

    ..... 
    } 

在蟒我繼承這個基類

import clr 
clr.AddReferenceToFile("MyClass.dll") 
from MyNamespace import ClassA  

class MySubclass(ClassA): 
    def _init_(self): 
     print "I'm in a subclass in python" 

我也有Python類C#中的一個屬性類MyAttrib("Value")

以後在我的C#代碼中,我檢查從ClassA派生的任何類都有屬性MyAttrib應用於它,在Python類中失敗。

有沒有辦法做到以下任一操作:

  1. 應用的ATTRIB類派生類在Python?
  2. 當對象被實例化時,以某種方式在Python中設置AttributeValue?
  3. 一些其他的方式做什麼,我想

我使用IronPython的使用插件爲Visual Studio。

回答

0

我不認爲有一個簡單的方法來做到這一點。使用定義了必要屬性和子類的C#存根類絕對更容易。

但是,如果你需要定義一個類一樣,在Python,則可以使用一種變通方法(如圖所示here

基本上可以編譯(在存儲器中)的一塊C#代碼並在IronPython中導入。鑑於這是一個C#代碼段,您可以添加屬性,因此您的問題已解決。

這當然是相當複雜的,因爲你基本上將語言嵌入到另一個鏈中,如下所示:C# <- IronPython <- C#,然後,我強烈建議你定義一個已經具有必要屬性並使用它的C#類。