In my head, I see Silverlight 4 applications as either running; In Browser Out of Browser Out of Browser and Trusted Out of Browser and Trusted and in the presence of COM interop ( i.e. on Windows ) and you might write functionality that only works in certain of those contexts – e.g.; HTML display only works out of browser. You can only read the contents of “My Documents” when out of browser and elevated You can only run any COM interop code when in the presence of COM interop and I thought that it might be a good use of MEF as a way of only bringing in the functionality that is going to work in a particular context. So, I defined an enum; [Flags] public enum AppContextStatus { InBrowser = 1, OutOfBrowser = 2, InOrOutOfBrowser = 3, OutOfBrowserTrusted = 4, OutOfBrowserCOMInterop = 8, All = 15 } and then I wanted to be able to figure out which of these particular states my code might be running in. So, a little class; public static class AppContext { public static AppContextStatus CurrentStatus { get { AppContextStatus...