2

アプリケーションで 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)

誰でもこの問題で私を助けてくれますか? 私はすでに何時間も費やしていますが、解決策は見つかりませんでした。ありがとう!!!

4

2 に答える 2

1

プロパティは、コンストラクターが完全に実行された後に MEF によってのみ設定されます。プロパティが null かどうかを確認するのはいつですか?

于 2011-07-06T18:17:36.603 に答える
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);
    }
}
于 2011-06-30T16:16:09.273 に答える