PythonはC#コンパイルDLLを呼び出す

4839 ワード

Python呼び出しC#コンパイルDLL
tips:
  • 本明細書のコードはpython 3に基づいて
  • を記述する.
  • コードウェアハウス
  • 問題の背景
    最近はクラウド関連のコンテンツを作っていますが、デスクトップ側の応用に関わるため、C#関連のコンテンツを学び、実験的な製品も作りました.この過程でpythonがC#を呼び出すことができるかどうかも考えます.結局pythonの大きな別称は「接着言語」であり、他の言語を組み合わせることができ、numpyの下部でC言語を使って書くなど、異なる機能ニーズを実現することができる.最終的にpythonnetというライブラリをネット上で見つけました.
    pythonnet使用
    Python for .NET(pythonnet)は、PythonプログラマーにWindows上で提供できるパッケージです.NET4.0+共通言語ランタイム(CLR)とLinuxとOSX上のMonoランタイムのほぼシームレスな統合.Python for .NETは.NET開発者は強力なアプリケーションスクリプトツールを提供しています.このパッケージを使用すると、使用できます.NETサービスは、CLRに対する言語(C#,VB.NET,F#,C+/CLI)で記述するコンポーネントとして使用される.NETアプリケーションはスクリプトを作成するか、Pythonを使用してアプリケーション全体を構築します.
    次に、Python呼び出しC#をDllにコンパイルするテストコードを書きます.
    C#コード:
    using System;
    
    namespace TestDll
    {
        public class MyTest
        {
    
            public void Print()
            {
    
                Console.WriteLine("Hello world!!!");
            }
    
            public void Print(string msg)
            {
    
                Console.WriteLine($"Hello {msg}!!!");
            }
    
            public double Add(double x, double y)
            {
                return x + y;
    
            }
        }
    
    }
    

    Pythonコード:
    """
        :
    1.    :pip install pythonnet
    2.     :https://pythonnet.github.io/    https://github.com/pythonnet/pythonnet
    """
    # coding:utf-8
    import clr
    
    #   Dll,       
    clr.AddReference("TestDll")
    
    #   DLL    ,       
    from TestDll import MyTest
    
    #     
    instance = MyTest()
    #        
    instance.Print()
    #        
    instance.Print("qin")
    #       
    add_data = instance.Add(1, 1)
    print(add_data)
    

    まとめ
  • PythonがC#コンパイルを呼び出すDll
  • を簡単に示した.
  • より多くの使用方法は、公式文書を参照することができます.