⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 catalog.cs

📁 详细介绍中小企业的网站编程,附有详细的注释,对需要制作网站的朋友有很大的帮助,有需要的朋友可下载,
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Web.Configuration;
///<summary>
///Catalog类
/// 提供静态函数访问产品和分类。作为一个抽象层在Web page和实际的数据提供者之间
///</summary>
public static class Catalog
{
    private static bool _isInitialized = false;    
    private static CatalogProvider _provider;
    private static SmallBusinessDataProvidersSection _providersSection;
    
    ///<summary>
    /// 只读属性,返回指定的数据提供者
    ///</summary>    
    public static CatalogProvider Provider
    {
        get
        {
            Initialize();
            return _provider;
        }
    }   
    ///<summary>
    ///根据指定的分类ID返回产品集合。
    ///</summary>
    public static List<Item> GetChildItems(string categoryId)
    {
        return Provider.GetChildItems(categoryId);
    }
    ///<summary>
    /// 根据指定的父分类返回子分类集合。
    ///</summary>
    public static List<Category> GetChildCategories(string parentCategoryId)
    {
        return Provider.GetChildCategories(parentCategoryId);
    }
    ///<summary>
    /// 根据指定的itemId返回产品项
    ///</summary>
    public static Item GetItem(string itemId)
    {
        return Provider.GetItem(itemId);
    }   
    /// <summary>
    /// 基于web.config配置文件,初始化具体的数据提供者,如果指定的提供者不能被
    /// 实例化,则抛出一个InvalidOperationException异常。
    /// </summary>
    private static void Initialize()
    {
        //_isInitialized内部使用,如果提供者己经被实例化,就不用再次实例化。这
        //样可以防止实例化一个提供者多次。
        if (!_isInitialized)
        {
            _providersSection = (ConfigurationManager.GetSection("SmallBusinessDataProviders")) as SmallBusinessDataProvidersSection;
            if (_providersSection == null)
            {
                throw new InvalidOperationException(Messages.ItemConfigNotFound);
            }
            //调用ProviderHelper.Instantiateprovider类实例化相应的提供者对象。
            _provider = ProvidersHelper.InstantiateProvider(_providersSection.CatalogProviders[_providersSection.CatalogProviderName],
                typeof(CatalogProvider)) as CatalogProvider;
            //如果不能实例化相应的提供者,则抛出InvalidOperationException异常。
            if (_provider == null)
            {
                throw new InvalidOperationException(Messages.ItemProviderInstantiationError);
            }
            _isInitialized = true;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -