5

是否可以执行以下操作:

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

[Import(typeof(Settings)]
Settings s;
4

1 回答 1

5

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

Settings s;

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

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

于 2012-10-18T16:07:50.617 回答