是否可以执行以下操作:
[Export(typeof(Settings)]
public static class Settings
{
public string Name {get;set;}
public string Color {get;set;}
}
[Import(typeof(Settings)]
Settings s;
答案 0 :(得分:5)
您无法导出静态类,因为没有要连接的实例。第二行:
Settings s;
将是编译器错误,因为您无法实例化静态类。
话虽如此,这通常不是必需的。 MEF将自动创建Settings
类的单个实例(默认情况下)(假设它不是静态的),并将相同的实例设置为指定的任何Import
。这有效地为您提供了“类似单身”的类,没有使用静态类或单例的任何缺点。