1
加載程序集在Silverlight 4應用程序我試圖實例化一個對象,它的類型不知道,直到運行時,:無法使用此代碼在強烈簽署的Silverlight代碼
Assembly assembly = Assembly.LoadFrom("Name.Of.Some.dll");
Type type = assembly.GetType("Full.NameSpace.And.ClassName");
object o = Activator.CreateInstance(type);
然而, Assembly.LoadFrom()調用會導致一個例外:
{System.MethodAccessException: Attempt by security transparent method 'Mosaic.Layers.LayerParamChangeHandlerInfo.CreateParamHandler()' to access security critical method 'System.Reflection.Assembly.LoadFrom(System.String)' failed.
我做了一些谷歌搜索的錯誤,但我仍然無法弄清楚,爲什麼我得到異常(一些相關的組件是我相信這是強烈的簽名),更重要的是,如何解決問題並創造我的客體。
查看Assembly.LoadString()的文檔,所需的參數是完整的程序集名稱,但不清楚到底是什麼在我的情況。我嘗試了「Name.Of.Some.dll」和「Name.Of.Some」,它們都導致FileNotFoundException。 而且,除非我誤讀它,否則您鏈接的文章使用流加載 - 我沒有流 - 只是需要實例化的程序集和類的名稱。 –
@Dave W:裝配位於哪裏,你正在裝載?你是否在瀏覽器外運行你的Silverlight應用程序? – Jehof
@Dave W:我認爲你需要指定完整的程序集名稱,包括版本,文化和公鑰標記。看到這個問題http://stackoverflow.com/questions/3015513/silverlight-assembly-load-only-works-with-the-full-strong-name – Jehof