ブログ

割とコンピュータよりの情報をお届けします。

2018年8月25日

PythonからC#で書いた.NET Frameworkのクラスライブラリを読みだす

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型はうまく文字列に変換が行われるようである。

 

≫ 続きを読む

2018/08/25 コンピュータ   TakeMe