我正在尝试在我的应用程序中使用MEF,但是我遇到了导入问题。
[Import (typeof(IUserServices ))]
public IUserServices UserService { get; private set; }
这不起作用,UserService始终为null。
但是在同一个类中使用ImportContstructor可以很好地工作:
[ImportingConstructor ]
public MainWindowVM(
IUIVisualizerService uiVisualizer,
IViewAwareStatus viewAwareStatus,
IMessageBoxService messageBoxService,
IManager mwManager,
TagItemModel tagModel,
ILibraryModel documentModel,
ILibraryServices libraryServices,
ILogServices logServices ,
IUserServices userServices)
任何人都可以帮我解决这个问题。我已经花了几个小时,但没有找到任何解决方案。感谢!!!
答案 0 :(得分:1)
该属性仅在构造函数完全执行后由MEF设置。你什么时候检查属性是否为空?
答案 1 :(得分:0)
我正在使用ChinchV2和MefedMVVM来创建容器。 这里是代码,它提供了导出:
[PartCreationPolicy(CreationPolicy.Shared)]
[Export (typeof(IUserServices ))]
public class TestUserServices:IUserServices
{
public void GetSettings(Action<HubSettings, Exception> callback)
{
var dPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase).Remove(0, 6);
callback(new HubSettings {DataPath = dPath}, null);
}
}