我在C#中有一个基类,就像这样
Class A
{
public ClassA()
{
}
.....
}
在python中我继承了这个基类
import clr
clr.AddReferenceToFile("MyClass.dll")
from MyNamespace import ClassA
class MySubclass(ClassA):
def _init_(self):
print "I'm in a subclass in python"
我在C#中也有一个名为MyAttrib("Value")
稍后在我的C#代码中,我检查从ClassA
派生的任何类是否都应用了属性MyAttrib
,这在Python类的情况下会失败。
有没有办法执行以下任一操作:
我正在使用IronPython和Visual Studio的插件。
答案 0 :(得分:0)
我认为没有一种简单的方法可以做到这一点。使用具有定义的必要属性和子类的C#存根类肯定更容易。
但是,如果 确实 需要在python中定义类似的类,则可以使用变通方法(如图所示here)
基本上你可以编译(在内存中)一段C#代码并在IronPython中导入它。鉴于这是一段C#代码,您可以添加属性,从而解决您的问题。
这当然是非常复杂的,因为你基本上将一种语言嵌入到另一种语言中,形成如下链:C# <- IronPython <- C#
,然后,我强烈建议你定义一个已经具有必要属性的C#类,用那个。