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
;
}
}
}
查看全文
相关阅读:
考研大数据爬取与分析工具3.0运行结果
人教社免费公布全学段教材电子版(附地址)
TeamViewer 15.7.7H俄罗斯大神破解商业版 可换ID
手机看电视直播,高清电视直播+TV影院 v1.5.0无广告免费观看全网影视资源
vue组件兄弟间通信
vue组件父子间通信之综合练习--假的聊天室
vue组件父子间通信02
Vue组件父子间通信01
vue组件间通信子与父
vue组件父与子通信-登录窗口
原文地址:https://www.cnblogs.com/wenjie/p/1167562.html
最新文章
es查询参考
es调优涉及问题
spring boot jar启动
spring bean自动装配
MarkDown语法参照模板展示
Excel单元格因绿色标记导致统计结果失败问题
Excel使用透视表实现数据定制化排序以及结果统计
springboot使用rabbitmq
java定制化排序,多个条件排序
Java程序RabbitMQ服务端和客户端
热门文章
RabbitMQ安装Window环境
cmd命令查看电脑当前连接无限网的密码信息
npm install安装进度慢的问题
Mysql创建用户 授权
冰点文库下载器V3.2.12下载
金山词霸 v10.4.5 for Android 无广告VIP版
班迪录屏- Bandicam v4.5.6——可修复因意外断电等原因导致的发生损坏后的mp4录屏文件
windows server 2016与2019批量授权版kms密钥
Windows10数字永久激活工具
Office2019、Office365自定义安装组件及转批量授权并激活的工具下载
Copyright © 2011-2022 走看看