从Python调用C#委托

时间:2018-11-14 12:18:45

标签: c# python-3.x

我正在尝试从python代码调用c#委托函数(updateTextBox)。

以下是我到目前为止尝试过的内容。

我的.net代码是:

namespace DynamicCS
{
    public class Test
    {
        public delegate void updateTextBoxDelegate(String textBoxString); // delegate type 
        public updateTextBoxDelegate updateTextBox; // delegate object

        public void M()
        {
            updateTextBox("Hello From delegate");
        }

        public string hello()
        {
            return "Hello from C#";
        }
    }
} 

我的Python代码是:

from types import *
from System import Action,EventHandler, EventArgs

sys.path.append(r'C:\\Users\\appadmin\\source\\repos\\DynamicCS\\DynamicCS\\bin\\Debug\\')
clr.AddReference(r"DynamicCS")

def updateTextBox(res):
    print(res)

from DynamicCS import Test

test = Test()
msg =  test.hello()
print(msg)
test.updateTextBox =Action[str](updateTextBox)
test.M()

运行python代码时出现以下错误,

test.updateTextBox =Action[str](updateTextBox)
TypeError: value cannot be converted to DynamicCS.Test+updateTextBoxDelegate

如果有人能指出我的代码中的错误,我将非常感谢。

0 个答案:

没有答案