Xaisoft
Xaisoft

Reputation: 46591

Can MEF Export/Import static classes?

Is it possible to do something like:

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

[Import(typeof(Settings)]
Settings s;

Upvotes: 5

Views: 1735

Answers (1)

Reed Copsey
Reed Copsey

Reputation: 564433

You can't export a static class, as there is no instance to wire up. The second line:

Settings s;

Would be a compiler error, as you can't instantiate a static class.

That being said, this is really not normally necessary. MEF will automatically create a single instance (by default) of your Settings class (provided it's not static), and set that same instance to any Import specified. This effectively gives you a "singleton-like" class, without any of the downsides of using a static class or a singleton.

Upvotes: 5

Related Questions