?? catalog.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 + -