【发布时间】: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;
【问题讨论】:
是否可以这样做:
[Export(typeof(Settings)]
public static class Settings
{
public string Name {get;set;}
public string Color {get;set;}
}
[Import(typeof(Settings)]
Settings s;
【问题讨论】:
您不能导出静态类,因为没有要连接的实例。第二行:
Settings s;
可能是编译器错误,因为您无法实例化静态类。
话虽如此,这实际上是没有必要的。 MEF 将自动创建Settings 类的单个实例(默认情况下)(前提是它不是静态的),并将同一实例设置为指定的任何Import。这有效地为您提供了一个“类似单例”的类,而没有使用静态类或单例的任何缺点。
【讨论】: