Aufrufen der C#-Bibliothek aus Python
Angenommen, Sie haben versucht, IronPython zu verwenden, sind aber auf Schwierigkeiten gestoßen, können Sie Ihren C#-Code stattdessen aus Python aufrufen. Dieser Ansatz kann besonders nützlich sein, wenn Sie über eine C#-Bibliothek verfügen, die WPF-Komponenten enthält, wie zum Beispiel das folgende Beispiel:
`csharp
using System.Runtime.InteropServices;
using System.EnterpriseServices;
Namespace 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(); } }
}
`
Um diesen C#-Code aus Python aufzurufen, können Sie das NuGet-Paket „UnmanagedExports“ verwenden. Durch die Installation dieses Pakets können Sie den C#-Code exportieren, ohne eine COM-Ebene zu erstellen. Hier ist ein Beispiel, wie Sie es tun können:
`csharp
mit System;
mit System.Collections.Generic;
mit System.Linq;
mit System.Runtime. InteropServices;
using System.Text;
using System.Threading.Tasks;
using RGiesecke.DllExport;
class Test
{
[DllExport("add", CallingConvention = CallingConvention.Cdecl)] public static int TestExport(int left, int right) { return left + right; }
}
`
Sobald Sie exportiert haben Mit dem C#-Code können Sie die DLL laden und die bereitgestellten Methoden aufrufen Python:
`python
import ctypes
a = ctypes.cdll.LoadLibrary(source)
a.add(3, 5)
`
Dies Die Methode bietet einen praktischen Ansatz zum Aufrufen von C#-Bibliotheken, einschließlich solcher, die WPF-Komponenten verwenden, aus Python-Code.
Das obige ist der detaillierte Inhalt vonWie kann ich eine C#-Bibliothek (einschließlich WPF-Komponenten) aus Python aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!