在运行时构建程序集并添加嵌入式资源 - 包括方案

时间:2011-07-12 09:13:41

标签: silverlight silverlight-4.0 embedded-resource

编辑:为了更好地澄清问题,我已经包含了一个场景:

情景:有一个教育机构制作视频教程。我们被要求提供有关如何保护视频文件的解决方案,以便不向用户提供对真实视频文件的访问。视频使用DVD ROM“离线”发布。

解决方案:我们决定将视频文件嵌入到silverlight程序集中并编写一个Silverlight OOB应用程序,该应用程序利用MediaElement控件来播放视频内容。此控件接受Stream类型的视频资源,这使得可以使用Application.GetResourceStream方法将嵌入资源作为流读取并将其传递给MediaElement。

设计:我们需要编写两个应用程序:

  1. 接受来自教育机构运营商的一个或多个视频文件并创建程序集并将视频文件嵌入到程序集中的文件。
  2. 另一个应用程序,它读取新创建的程序集的内容并使用MediaElement控件播放视频内容。
  3. 问题:

    如何使用C#windows应用或Silverlight应用生成 silverlight程序集并将视频资源嵌入“以编程方式”?我想使用AssemblyBuilder类,但它在silverlight中不包含Save方法。

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

假设您觉得需要按照描述的方式嵌入视频,而不是将其流式传输,那么您无需在Silverlight客户端上运行模块的创建。

  • 让Silverlight应用将视频上传到匹配的Silverlight主机
  • 现在您可以完全访问.Net堆栈并可以创建您需要的任何内容(包括动态编译项目或程序集并使用AssemblyBuilder)。

如果这不能涵盖您的情况,请进一步澄清问题。