Esempio n. 1
0
        /// <summary>
        /// 获取注册到数据库提供者的插件服务实例。
        /// </summary>
        /// <typeparam name="TProvider">插件服务的类型。</typeparam>
        /// <returns></returns>
        public override TProvider GetService <TProvider>()
        {
            var database = DatabaseFactory.GetDatabaseFromScope();

            if (database == null)
            {
                return(base.GetService <TProvider>());
            }

            var parameter = GetConnectionParameter(database.ConnectionString);

            if (parameter == null || parameter.Database == null)
            {
                return(base.GetService <TProvider>());
            }

            var fileName = parameter.Database.ToLower();

            if (fileName.EndsWith(".mdb") || fileName.EndsWith(".accdb"))
            {
                return(ProviderExtension.GetService <TProvider>(this, "Access"));
            }

            return(base.GetService <TProvider>());
        }
Esempio n. 2
0
 /// <summary>
 /// 获取注册到数据库提供者的插件服务实例。
 /// </summary>
 /// <typeparam name="TProvider">插件服务的类型。</typeparam>
 /// <returns></returns>
 public virtual TProvider GetService <TProvider>() where TProvider : class, IProviderService
 {
     return(ProviderExtension.GetService <TProvider>(this));
 }