2011-08-11 50 views
0

在我正在處理的應用程序中,我使用反射來動態加載動畫程序集(並從中創建實例)。但是,當我完成動畫時,我將動畫中的包裝處理掉了,並忘記了它。 。 。這工作,直到我再次需要動畫。當您爲同一個程序集多次調用Assembly.CreateInstance時會發生什麼?

創建動畫調用Assembly.CreateInstance(AnimationUnit.TypeName)從動畫程序集動態創建實例,因爲每個程序集都是一個唯一命名的dll文件。即使我多次進行此調用,Silverlight運行時是否足夠聰明以僅加載程序集一次?

回答

2

Assembly.CreateInstance不創建裝配的實例 - 它內給定程序創建一個類型的實例。

+0

我認爲他的意思是每次調用CreateInstance方法時,類型所屬的程序集是否加載到內存 – sternr

+0

@sternr - 的確如此。我現在編輯了我的問題來反映這個想法。 –

+0

@Corey:但這些是*實例*方法。爲了調用方法,你必須在內存中*有一個'Assembly'。當你在程序集中調用它時,爲什麼它會加載另一個程序集的副本? –

相關問題