2009-06-17 14 views
1

IronPythonでC#クラスの再宣言が可能かどうかは誰にでも分かりますか?私がC#クラスを持っていれば、IronPythonから猿のパッチを当てることができますか?IronPythonでの再ネイティブ.netクラス

+0

説明として、私はIronPythonのc#クラスをどのようにmonkey-patchするかを知りたいと思います。 –

答えて

0

IronPythonからサルのパッチを適用することはできません。 IronPythonは、CPythonが組み込み型を扱うのと同じように、すべての.NETクラスを扱います。つまり、monkey patchedはできません。一方、IronRubyはこれをサポートしています。

-1

なぜあなたはそれを再宣言しますか? subclass itにもっと意味をなさないか、まったく新しいクラスを作るのではないでしょうか?

EDIT:実際に必要なのは、コントロールの適切な反転(IOC)フレームワーク(Castle Windsorなど)です。基本的には、データベース・インタフェースを使用して、本番用の実際のデータベースを注入するIOCフレームワークを構成し、テスト用のモック・データベースを作成します。

+0

クラスがコンストラクタ内のデータベースにアクセスしようとするため、単体テストが困難になるため、コンストラクタを再宣言したいとします。コンストラクタを再宣言することによって、クラスをモックデータベースにポイントし、実際のデータベースにヒットせずにユニットをテストすることができます。応答していただきありがとうございます。 –

0

IronPythonからmonkey-patchすることはできますが、IPyは変更を尊重する唯一の環境です。つまり、IronPythonからFile.Createをモックしようとすると、これは任意のIPyコードで正常に動作しますが、File.CreateというC#メソッドを呼び出すと、モックではなく実際のものが取得されます。

+0

どうすればいいですか?自分のクラスで試してみると、次のメッセージが表示されます。 AttributeError: 'className'オブジェクトの 'methodName'属性が読み取り専用です –

関連する問題