码迷,mamicode.com
首页 > Windows程序 > 详细

在WPF MVVM中导入使用MEF时不工作

时间:2018-10-22 17:52:04      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:sse   start   UNC   app   logs   load   pos   程序   name   

我想做一个测试MEF WPF。 我使用一个项目作为接口:

// Project name MEFWpfTest.Interfaces
public interface IAppViewModel
{
string Name { get; set; }
}
然后创建一个新项目来实现这个接口:

// Project name MEFWpfTest.ViewModels
[Export("AppViewModel")]
public class AppViewModel : IAppViewModel
{
public string Name { get; set; }
}
在App.xaml。 cs,WPF项目,我试着在MEF组成部分:

// Project name MEFWpfTest
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
var aggregateCatalog = new AggregateCatalog();
Assembly assembly = Assembly.GetExecutingAssembly();
aggregateCatalog.Catalogs.Add(new AssemblyCatalog(assembly));

    var directoryPath = Path.GetDirectoryName(assembly.Location);

    if (directoryPath != null)
    {
        aggregateCatalog.Catalogs.Add(new DirectoryCatalog(directoryPath, $"MEFWpfTest.*.dll"));

    }

    CompositionContainer Container = new CompositionContainer(aggregateCatalog);
    Container.ComposeParts(this);

    MainWindow w = new MainWindow();
    w.Show();
}

}
然后在MainWindow.xaml。 cs,我使用一个IAppViewModel进口:

// Project name MEFWpfTest
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

[Import("AppViewModel")]
public Interfaces.IAppViewModel AppVM { get; set; }

private void Window_Loaded(object sender, RoutedEventArgs e)
{ // I set a break point here.

}

}
当我运行这个应用程序,我发现AppVM是null。 很好,当我在一个装配做同样的事情。 MEFWpfTest已经MEFWpfTest引用。 接口和MEFWpfTest.ViewModels。

在WPF MVVM中导入使用MEF时不工作

标签:sse   start   UNC   app   logs   load   pos   程序   name   

原文地址:https://www.cnblogs.com/huaigongzi/p/9830983.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!