2009-06-17 66 views
1

任何人都可以告訴我它是否可以重新聲明IronPython中的C#類?如果我有一個C#類,我是否可以從IronPython中修補它?IronPython中的Redeclare .net類

+0

作爲一個澄清,我想知道如何從IronPython猴子補丁的c#類。 – 2009-06-19 13:25:25

回答

0

你不能從IronPython猴子補丁。 IronPython像所有的.NET類一樣對待內置類型:它們不能被猴子修補。 IronRuby另一方面確實支持這一點。

-1

爲什麼要重新聲明它? subclass it或者只是創造一個全新的課程,難道不會更有意義嗎?

編輯:給你的澄清,我認爲你實際需要的是正確的控制(IOC)框架倒置,如Castle Windsor。基本上,你有一個數據庫接口,然後配置IOC框架注入一個真實的數據庫進行生產,並模擬數據庫進行測試。

+0

我想重新聲明構造函數,因爲類試圖訪問構造函數中的數據庫,這使得單元測試變得很困難。通過重新聲明構造函數,我可以將類指向模擬數據庫,並且單元測試它而不會觸及實際的數據庫。感謝您的迴應。 – 2009-06-18 17:14:56

0

你可以從IronPython的猴子補丁,但IPy是唯一的環境,將尊重你的變化;即如果您試圖從IronPython中剔除File.Create,這對任何IPy代碼都可以正常工作,但如果您調用一個名爲File.Create的C#方法,它將獲得真正的一個,而不是模擬。

+0

你如何做到這一點?當我在自己的課上嘗試時,我收到以下消息: AttributeError:'className'對象的屬性'methodName'是隻讀的 – 2009-06-26 19:43:31