從 Python 呼叫 C# 函式庫
假設您已嘗試使用 IronPython 但遇到困難,您可以考慮從 Python 呼叫 C# 程式碼。如果您有一個包含 WPF 元件的 C# 函式庫,例如以下範例,此方法可能特別有用:
`csharp
using System.Runtime.InteropServices;
using System.EnterpriseServices;
命名空間DataViewerLibrary
{
public interface ISimpleProvider { [DispIdAttribute(0)] void Start(); } [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] public class PlotData : ServicedComponent, ISimpleProvider { public void Start() { Plot plotter = new Plot(); plotter.ShowDialog(); } }
}
`
要從 Python 呼叫此 C# 程式碼,您可以使用 NuGet 套件「UnmanageExports」。安裝此套件,您可以匯出 C# 程式碼,而無需建立 COM 層。以下是如何執行此操作的範例:
`csharp
使用 System;
使用 System.Collections.Generic;
使用 System.Linq;
使用 System.Runtime。 InteropServices;
使用System.Text;
使用System.Threading.Tasks;
使用RGiesecke.DllExport;
類測試
{
[DllExport("add", CallingConvention = CallingConvention.Cdecl)] public static int TestExport(int left, int right) { return left + right; }
}
`
導出後C#程式碼,您可以載入DLL 並呼叫公開的方法Python:
`python
import ctypes
a = ctypes.cdll.LoadLibrary(source)
a.add(3, 5)
`
這個方法提供了一個從Python 程式碼呼叫C#庫(包括使用 WPF 元件的庫)的便捷方法。
以上是如何從Python呼叫C#函式庫(包括WPF元件)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!