【问题标题】:MEF share instance between modules模块之间的 MEF 共享实例
【发布时间】:2013-10-07 09:51:43
【问题描述】:

我将 PRISM/MEF 用于我的 C# 应用程序。我想做以下事情,我对 PRISM 真的很陌生,也许我做错了什么或者做错了什么,但它不像下面显示的那样工作。

我创建了两个模块,在 Module1 中我创建了一个类的实例。我想与其他 Module2 共享此实例。

类似这样的:

模块 1(视图模型):

[Export("ME")]
private Person me = new Person();
//within some function...
me.Name = "Jasmin";

模块2(视图模型):

[Import("ME")]
private Lazy<Person> me;
//within some function
Console.Writeline(me.Name); //here I want to get "Jasmin"

共享模型类:

public class Details
{
   public string Name;
}
public class Person
{
   public Name first = new Name();
}

【问题讨论】:

  • 看看stackoverflow.com/questions/9010437/…。您是否在整个对象层次结构中使用不同的 MEF 容器?
  • 不,只有一个来自引导程序。我之前看过这个链接,但我仍然没有看到让它工作的答案。如果有人可以修改我的代码以使其正常工作,我将不胜感激。我想它毕竟并不复杂?
  • @user2799180 你得到错误或什么?顺便说一下 me.Name 应该是 me.Value.Name。
  • 我不知道发生了什么,但现在可以了。正如它应该的那样。也许它所需要的只是重建整个解决方案。

标签: c# mef prism-4


【解决方案1】:

它的工作原理与我的问题中显示的完全一样。我只需要重建整个解决方案。

稍后访问该对象,而不是:

Console.Writeline(me.Name); //here I want to get "Jasmin"

必须使用:

Console.Writeline(me.Value.Name); //here I want to get "Jasmin"

感谢您的帮助。

【讨论】:

    猜你喜欢
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2016-03-21
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    相关资源
    最近更新 更多