我有一些簡單的導出/導入場景,我不能找出爲什麼這不起作用。在我的情況,我有一個WPF應用程序,如低於2 ClassLibrary,在Classlib1我有一個接口命名ITestEx1:如下MEF導入錯誤
public interface ITestEx1
{
string Name {get; set;}
}
和1派生類的命名(在testEx1):
using System.ComponentModel.Composition;
[Export(typeof(ITestEx1))]
public class TestEx1 : ITestEx
{
public Name {get; set;}
}
你可以看到這個類導出爲類型ITestEx1的,現在在Classlib2我refrenced Classlib1和具有如下一類:
using System.ComponentModel.Composition;
using Classlib1;
public class TestMEF
{
[Import(typeof(ITestEx1))]
public ITestEx1 TestE {get; set;}
}
和在主WPF應用程序我refrenced既Classlib1和ClassL IB2和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
}
請幫我解決這個問題