static Provider() { lock (typeof(Provider)) { if (provider != null) { return; } var extensions = GetOrderedExtensions( "/Banshee/Platform/IOProvider", ProviderSchema.Get(), "Banshee.IO.Gio.Provider", "Banshee.IO.Unix.Provider", "Banshee.IO.SystemIO.Provider" ); foreach (var node in extensions) { try { provider = (IProvider)node.CreateInstance(typeof(IProvider)); break; } catch (Exception e) { Log.Warning("IO provider extension failed to load", e.Message); } } if (provider == null) { provider = new Banshee.IO.SystemIO.Provider(); } Log.DebugFormat("IO provider extension loaded ({0})", provider.GetType().FullName); directory = (IDirectory)Activator.CreateInstance(provider.DirectoryProvider); file = (IFile)Activator.CreateInstance(provider.FileProvider); } }
static Provider() { lock (typeof(Provider)) { if (provider != null) { return; } foreach (TypeExtensionNode node in AddinManager.GetExtensionNodes("/Banshee/Platform/IOProvider")) { try { if (node.HasId && node.Id == ProviderSchema.Get()) { provider = (IProvider)node.CreateInstance(typeof(IProvider)); } } catch (Exception e) { Log.Warning("IO provider extension failed to load", e.Message); } } if (provider == null) { provider = new Banshee.IO.SystemIO.Provider(); } Log.DebugFormat("IO provider extension loaded ({0})", provider.GetType().FullName); directory = (IDirectory)Activator.CreateInstance(provider.DirectoryProvider); file = (IFile)Activator.CreateInstance(provider.FileProvider); } }