微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight 中的 CoreCLR

Silverlight 2 确实包含一个 CLR,但并不是其他 .NET 应用程序和程序集使用的 CLR。Silverlight CLR 也称为 CoreCLR,在设计时充分考虑了不同用途。CoreCLR 专为跨平台互操作性而设计,可与 CLR 同时运行并支持不同的安全模型以及不同版本的基础类库。2008 年 8 月的出色专栏《CLR 全面透彻解析》中对此进行了详细说明(请参阅 msdn.microsoft.com/magazine/cc721609)。

Silverlight 和 .NET 应用程序使用不同 CLR 意味着您不能在两个针对 .NET 应用程序和 Silverlight 应用程序的项目中引用同一个程序集。主要问题出在 mscorlib 程序集上。Silverlight 正常使用所需的功能集非常小-仅仅是内核。但任何 .NET 程序集都要链接标准版本的 mscorlib,这就是问题所在。

在本专栏所讨论的示例应用程序中,我利用一个接口来共享 Windows Presentation Foundation 应用程序与 Silverlight 应用程序。唯一的解决方法是在两项目之间复制 C# 及接口定义,因为您没有共同引用的程序集,因此在 .NET Framework 版本中,有必要将标准 mscorlib 程序集内的功能分成两部分:内核事务和桌面事务,以便为 Silverlight 和 .NET 程序集之间的二进制兼容性奠定基础。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐