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