【问题标题】:Can MEF Export/Import static classes?MEF 可以导出/导入静态类吗?
【发布时间】:2023-04-03 07:25:02
【问题描述】:

是否可以这样做:

[Export(typeof(Settings)]
public static class Settings
{
   public string Name {get;set;}
   public string Color {get;set;}
}

[Import(typeof(Settings)]
Settings s;

【问题讨论】:

    标签: c# .net-4.0 mef


    【解决方案1】:

    您不能导出静态类,因为没有要连接的实例。第二行:

    Settings s;
    

    可能是编译器错误,因为您无法实例化静态类。

    话虽如此,这实际上是没有必要的。 MEF 将自动创建Settings 类的单个实例(默认情况下)(前提是它不是静态的),并将同一实例设置为指定的任何Import。这有效地为您提供了一个“类似单例”的类,而没有使用静态类或单例的任何缺点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      • 1970-01-01
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 2011-04-23
      相关资源
      最近更新 更多