using System; using System.Data.Common; using System.Linq; using System.Reflection; namespace NzbDrone.Core.Datastore { public static class SqlCeProxy { private static readonly object instance; private static readonly Type proxyType; static SqlCeProxy() { proxyType = Assembly.Load("NzbDrone.SqlCe").GetExportedTypes()[0]; instance = Activator.CreateInstance(proxyType); } public static DbConnection EnsureDatabase(string connectionString) { var factoryMethod = proxyType.GetMethod("EnsureDatabase"); return (DbConnection)factoryMethod.Invoke(instance, new object[] { connectionString }); } public static DbProviderFactory GetSqlCeProviderFactory() { var factoryMethod = proxyType.GetMethod("GetSqlCeProviderFactory"); return (DbProviderFactory)factoryMethod.Invoke(instance, null); } } }