Maison >développement back-end >C++ >Comment puis-je appeler une bibliothèque C# (y compris des composants WPF) à partir de Python ?

Comment puis-je appeler une bibliothèque C# (y compris des composants WPF) à partir de Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-28 21:01:14243parcourir

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

Appel de la bibliothèque C# depuis Python

En supposant que vous avez essayé d'utiliser IronPython mais que vous avez rencontré des difficultés, vous pouvez plutôt envisager d'appeler votre code C# depuis Python. Cette approche peut être particulièrement utile si vous disposez d'une bibliothèque C# qui inclut des composants WPF, comme l'exemple suivant :

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

espace de noms 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();
   }
}

}
`

Pour appeler ce code C# depuis Python, vous pouvez utiliser le package NuGet « UnmanagedExports ». En installant ce package, vous pouvez exporter le code C# sans créer de couche COM. Voici un exemple de la façon dont vous pouvez procéder :

`csharp
en utilisant System ;
en utilisant System.Collections.Generic;
en utilisant System.Linq;
en utilisant System.Runtime. InteropServices;
en utilisant System.Text;
en utilisant System.Threading.Tasks;
using RGiesecke.DllExport;

class Test
{

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

}
`

Une fois que vous avez exporté le code C#, vous pouvez charger la DLL et appeler les méthodes exposées depuis Python :

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

Ceci La méthode fournit une approche pratique pour appeler des bibliothèques C#, y compris celles qui utilisent des composants WPF, à partir du code Python.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn