Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memanggil Perpustakaan C# (Termasuk Komponen WPF) daripada Python?

Bagaimanakah Saya Boleh Memanggil Perpustakaan C# (Termasuk Komponen WPF) daripada Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-28 21:01:14243semak imbas

How Can I Call a C# Library (Including WPF Components) from Python?

Memanggil Pustaka C# daripada Python

Dengan mengandaikan anda telah mencuba menggunakan IronPython tetapi menghadapi kesukaran, anda boleh mempertimbangkan untuk memanggil kod C# anda daripada Python. Pendekatan ini amat berguna jika anda mempunyai perpustakaan C# yang merangkumi komponen WPF, seperti contoh berikut:

`csharp
menggunakan System.Runtime.InteropServices;
menggunakan System.EnterpriseServices;

ruang nama 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();
   }
}

}
`

Untuk memanggil kod C# ini daripada Python, anda boleh menggunakan pakej NuGet "UnmanagedExports." Dengan memasang pakej ini, anda boleh mengeksport kod C# tanpa membuat lapisan COM. Berikut ialah contoh cara anda boleh melakukannya:

`csharp
menggunakan Sistem;
menggunakan System.Collections.Generic;
menggunakan System.Linq;
menggunakan System.Runtime. InteropServices;
menggunakan System.Teks;
menggunakan System.Threading.Tasks;
menggunakan RGiesecke.DllExport;

Ujian kelas
{

[DllExport("add", CallingConvention = CallingConvention.Cdecl)]
public static int TestExport(int left, int right)
{
    return left + right;
}

}
`

Sebaik sahaja anda telah mengeksport kod C#, anda boleh memuatkan DLL dan memanggil kaedah terdedah daripada Python:

`python
import ctypes
a = ctypes.cdll.LoadLibrary(source)
a.add(3, 5)
`

Ini kaedah menyediakan pendekatan yang mudah untuk memanggil perpustakaan C#, termasuk yang menggunakan komponen WPF, daripada kod Python.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanggil Perpustakaan C# (Termasuk Komponen WPF) daripada Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn