PythonからC#で書いた.NET Frameworkのクラスライブラリを読み出してみた。
C# でクラスライブラリを書いて,Pythonから使う。
まずは,C#のライブラリの記述内容である。いろいろ試してみると,namespaceの名前の付け方には注意が必要なようです。なお,ビルドは.NET Framework 4.0以上で実行環境にあるものより下のバージョンならよさそう(バージョンを混ぜるとどうなるかは気になるが試していない)。ビルドで出てきたdllをpyファイルのある同じフォルダに移動するとPython for .NETのAddReference()で探せるようになる。
using System; using System.Collections.Generic; using System.Text; namespace TestLibraryName // dllの名前と同じだと失敗する { public class TestClass { public string Test(string a) { return "OUT:" + a; } } }
次にPythonの側の記述である。
import clr clr.AddReference('TestLibrary') from TestLibraryName import TestClass testClass = TestClass() print(testClass.Test('test'))
.NETのstring型はうまく文字列に変換が行われるようである。