【发布时间】:2012-03-26 19:32:41
【问题描述】:
- 长长的叹息 * 再次像爱丽丝一样,我发现自己又一次跌入兔子洞。又名 Microsoft 决策者。
我应该提到我从未安装过 SL5 测试版。我一直等到实际发布之后。在安装官方 v5 版本之前。
因此,使用 Telerik JustDecompile(.NET Reflector 的替代品)我加载了闲置的 SL 程序集,并且为了彻底性,我也投入了 WP7 ...
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v3.0\mscorlib.dll
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\mscorlib.dll
C:\Program Files (x86)\Microsoft Silverlight\5.0.61118.0\mscorlib.dll
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone\mscorlib.dll
在 WP7 System.Reflection.Assembly 中包含休闲方法...
public static Assembly Load(string assemblyString);
public static Assembly LoadFrom(string assemblyFile);
在 SL3 System.Reflection.Assembly 中包含休闲方法 ...
public static Assembly Load(string assemblyString);
public static Assembly Load(byte[] rawAssembly);
public static Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore);
public static Assembly LoadFrom(string assemblyFile);
在 SL4 System.Reflection.Assembly 中包含休闲方法 ...
public static Assembly Load(string assemblyString);
public static Assembly Load(byte[] rawAssembly);
public static Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore);
public static Assembly LoadFrom(string assemblyFile);
在 SL5 System.Reflection.Assembly 中包含休闲方法 ...
public static Assembly Load(string assemblyString);
internal static Assembly Load(byte[] rawAssembly);
internal static Assembly Load(byte[] rawAssembly, byte[] rawSymbolStore);
internal static Assembly LoadFrom(string assemblyFile);
现在我不得不问到底发生了什么?!? SL5 中的 Load 和 LoadFrom 已更改为内部!为什么?我问是因为在不同的地方,虽然我的代码使用 LoadFrom 从磁盘加载程序集。我的代码最初是为 XNA 3 编写的,然后移植到 XNA 4,然后移植到 SL4,但是当我更新到 SL5 时,LoadFrom 不再可用。为什么在最近 2 个或更多版本中提供的功能只是在 SL5 中隐藏?
我在 Silverlight 论坛上发布了这个问题,但没有任何回应,而 SL5 what's new and what's changed 文档似乎也没有提及。
【问题讨论】:
-
我不确定范围为什么会改变。我最好的猜测是它们曾经被标记为 SecurityCritical 然后在以后的更新中只是在内部进行。如果要将程序集加载到内存中,请尝试 AssemblyPart.Load 方法。
-
嗯,[FriendAccessAllowed],这很新颖。你如何变得友好尚不清楚。
标签: c# silverlight