3

C#で書かれたライブラリがあり、次のようになります

class FooCollection
    {
        private readonly FooBase _innerFoo;
        public FooCollection()
        {
            _innerFoo = new FooBase();
        }

        public string this[int index]
        {
            get { return _innerFoo._components[index].ComponentName; }
            set
            {
                _innerFoo._components[index].ComponentName = value;
            }
        }
    }

そして、このクラスは COM から見えるので、Python から使用しようとしています。したがって、このコマンドは機能します

foo(1)

しかし、これはそうではありません

foo(1) = 'SomeName'

「呼び出し機能に割り当てることができません」と表示されます。角かっこ [] を試してみましたが、ダメです。このプロパティを設定するために C# で追加の「通常の」メソッドを作成する以外に、これをバイパスする方法はありますか?

PythonでCOMにpywin32-218を使用しています。

foo = win32com.client.Dispatch("Foo")
4

1 に答える 1