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(); } }
}
`
この C# コードを Python から呼び出すには、NuGet パッケージ「UnmanagedExports」を利用できます。このパッケージをインストールすると、COM レイヤーを作成せずに C# コードをエクスポートできます。これを行う方法の例を次に示します。
`csharp
System を使用;
System.Collections.Generic を使用;
System.Linq を使用;
System.Runtime を使用します。 InteropServices;
System.Text の使用;
使用System.Threading.Tasks;
using RGiesecke.DllExport;
class Test
{
[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)
`
Thisメソッドは、Python コードから C# ライブラリ (WPF コンポーネントを使用するライブラリを含む) を呼び出すための便利なアプローチを提供します。
以上がPython から C# ライブラリ (WPF コンポーネントを含む) を呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。