【问题标题】:Silverlight Assembly.Load() only works with the full/strong nameSilverlight Assembly.Load() 仅适用于完整/强名称
【发布时间】:2010-06-10 14:48:44
【问题描述】:

显然,Silverlight 中 Assembly.Load() 的实现需要一个完整/强名称。

例如这行得通:

Assembly.Load("MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=...");

即使 MyAssembly 已经加载,这也会失败:

Assembly.Load("MyAssembly");

是否有解决方法可以使用简单名称?

【问题讨论】:

    标签: c# .net silverlight silverlight-4.0


    【解决方案1】:

    据我所知,在 Silverlight 中没有使用全名解决此问题的方法。但是,您也许能够以另一种方式实现您的最终目标(取决于您要做什么)。例如,XAML 解析器对程序集名称更加宽容,因此如果您只是尝试在该程序集中创建一个类的实例(使用默认构造函数),那么类似

    XamlReader.Load("<my:ClassName xmlns:my='clr-namespace:MyNamespace;assembly=MyAssemblyShortName' />")

    应该可以解决问题。

    【讨论】:

      【解决方案2】:

      我解决这个问题的一种方法是在我需要获取引用的程序集中包含的类型上使用typeof

      var assembly = typeof(MyNamespace.SubNamespace.Type).Assembly;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-14
        • 1970-01-01
        • 2012-04-27
        • 1970-01-01
        • 2021-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多