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

接続するインスタンスがないため、静的クラスをエクスポートすることはできません。2 行目:

Settings s;

静的クラスをインスタンス化できないため、コンパイラ エラーになります。

そうは言っても、これは通常は必要ありません。SettingsMEF は、 (静的ではない場合) クラスの単一のインスタンス (既定) を自動的に作成し、その同じインスタンスをImport指定された任意のインスタンスに設定します。これにより、静的クラスやシングルトンを使用することの欠点がなく、「シングルトンのような」クラスが効果的に提供されます。

于 2012-10-18T16:07:50.617 に答える