动态加载MVVM Light程序集的问题

时间:2014-03-04 07:54:40

标签: c# .net wpf mvvm mvvm-light

我计划使用MVVM Light编写一个WPF应用程序,并希望仅使用可执行文件来分发它,仅表示“MyApp.exe”(没有所有其他MVVM Light程序集)。

我的想法是将所有程序集嵌入项目资源中,然后在应用程序启动时动态加载它,例如在App.xaml.cs中调用以下代码块。

private static void LoadAllAssemblies()
{
  var assemblies = Assembly.GetExecutingAssembly().GetManifestResourceNames().Where(x => x.EndsWith(".dll")).ToList();

  foreach (var assembly in assemblies)
  {
      using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(assembly))
      {
          if (stream == null)
              continue;

          var data = new Byte[stream.Length];
          stream.Read(data, 0, data.Length);

          Assembly.Load(data);
      }
  }
}

现在的问题是每当我尝试运行它时,它会继续通过以下消息给我一个例外,“

  

在类型上调用构造函数   与指定绑定匹配的“MyApp.Framework.ViewModelLocator”   约束引发了异常。

知道为什么会这样,以及如何做到这一点?或者它甚至可行吗?

0 个答案:

没有答案