zoukankan
html css js c++ java
mojoPortalprovider模式学习之1.1之IndexBuilderManager
第四步 Provider Manager 类
这个类根据 第三步中的 Provider Configuration类中的配置信息,实例化Provider.
public
sealed
class
IndexBuilderManager
{
//
private static bool isInitialized = false;
//
private static Exception initializationException;
private
static
object
initializationLock
=
new
object
();
private
static
readonly
ILog log
=
LogManager.GetLogger(
typeof
(IndexBuilderManager));
//
在构造函数中调用初始化方法
static
IndexBuilderManager()
{
Initialize();
}
//
根据配置文件中的信息,实例化provider,并放到ProviderCollection中
private
static
void
Initialize()
{
providerCollection
=
new
IndexBuilderProviderCollection();
try
{
IndexBuilderConfiguration config
=
IndexBuilderConfiguration.GetConfig();
if
(config
!=
null
)
{
if
(
(config.Providers
==
null
)
||
(config.Providers.Count
<
1
)
)
{
throw
new
ProviderException(
"
No IndexBuilderProvider found.
"
);
}
//
实例化Provider的具体方法
ProvidersHelper.InstantiateProviders(
config.Providers,
providerCollection,
typeof
(IndexBuilderProvider));
}
else
{
//
config was null, not a good thing
log.Error(
"
IndexBuilderConfiguration could not be loaded so empty provider collection was returned
"
);
}
}
catch
(NullReferenceException ex)
{
log.Error(ex);
}
catch
(TypeInitializationException ex)
{
log.Error(ex);
}
catch
(ProviderException ex)
{
log.Error(ex);
}
providerCollection.SetReadOnly();
//
}
//
catch (Exception ex)
//
{
//
log.Error(ex);
//
initializationException = ex;
//
isInitialized = false;
//
//
throw ex;
//
return;
//
}
//
isInitialized = true;
}
private
static
IndexBuilderProviderCollection providerCollection;
public
static
IndexBuilderProviderCollection Providers
{
get
{
//
try
//
{
if
(providerCollection
==
null
) Initialize();
return
providerCollection;
//
}
//
catch (NullReferenceException ex)
//
{
//
log.Error(ex);
//
}
//
catch (TypeInitializationException ex)
//
{
//
log.Error(ex);
//
}
//
catch (ProviderException ex)
//
{
//
log.Error(ex);
//
}
return
null
;
}
}
}
查看全文
相关阅读:
杭电2027
杭电2028
开发者所需要知道的iOS7 SDK新特性
苹果已向这15款产品和应用宣战
谷歌J2ObjC(Java to ObjectiveC)版本更新
国外应用评测网站汇总
iOS 7 UI设计官方图集
iOS 7UI设计模板
js中 setTimeout延时0毫秒的作用
C# Xmlrpc
原文地址:https://www.cnblogs.com/wenjie/p/1167562.html
最新文章
ARCGIS10 试用评测(附破解信息)
【转】Sun VirtualBox下安装Ubuntu全屏问题解决
云计算开源平台部署实验系列一
JSP Web开发入门系列(一)JDBC基础
云计算实践之虚拟化技术介绍
数据预处理思维导图
100C之14:如何获得最大投资利益
100c之17:平分七筐鱼
100C之15:倒底捕了多少鱼?
100C之11: 三天打鱼两天晒网
热门文章
100C之12:寻找肇事车
100C之13:他该如何存款?
100c之20:奇怪的三位数
8除不尽的自然数
100C之16:卖金鱼
个位数为6且被3整除的五位数有多少?
杭电2026题答案
杭电2025题
杭电2029
(转)深入了解scanf()/getchar()和gets()/cin等函数
Copyright © 2011-2022 走看看