Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can MEF Export/Import static classes?

Tags:

c#

.net-4.0

mef

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;
like image 297
Xaisoft Avatar asked Oct 18 '12 16:10

Xaisoft


1 Answers

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.

like image 119
Reed Copsey Avatar answered Nov 19 '22 10:11

Reed Copsey