У меня есть простой сценарий экспорта / импорта, который я не могу понять, почему это не работает.в моем сценарии у меня есть одно приложение WPF и 2 ClassLibrary, в Classlib1 у меня есть один интерфейс с именем ITestEx1, как показано ниже:
public interface ITestEx1
{
string Name {get; set;}
}
и 1 производный класс Named (TestEx1), как показано ниже:
using System.ComponentModel.Composition;
[Export(typeof(ITestEx1))]
public class TestEx1 : ITestEx
{
public Name {get; set;}
}
как вы можете видеть, этот класс экспортируется как тип ITestEx1, теперь в Classlib2 я ссылался на Classlib1 и у него есть один класс, как показано ниже:
using System.ComponentModel.Composition;
using Classlib1;
public class TestMEF
{
[Import(typeof(ITestEx1))]
public ITestEx1 TestE {get; set;}
}
, а в основном приложении WPF я ссылался как на Classlib1 и ClassLib2, так и в конструктореMainWindow.xaml я написал этот код для инициализации MEF:
private CompositionContainer _container;
...
public MainWindow()
{
InitializeComponent();
var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new AssemblyCatalog(typeof(MainWindow).Assembly));
catalog.Catalogs.Add(new AssemblyCatalog(typeof(TestEx1).Assemble));
_container = new CompositionContainer(catalog)
_container.ComposeParts(this);
}
... и при нажатии кнопки у меня есть это:
{
...
var aa = new TestMEF();
aa.TestE.Name = "abc"; // Error, object null refrence
}
Пожалуйста, помогите мне решить эту проблему