Parameter配置文件获取
public class ConfigInfo
{
public static ParametersHelper Parameters
{
get { return new ParametersHelper(); }
} public class ParametersHelper
{
string fileName = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase,JobConstValue.BUSINESS_CONFIG_FILE);
public PerParameter this[string name]
{
get
{
string parameterStr = Utility.ExecuteXPathInFile(fileName, string.Format(@"/Parameters/Parameter[@name='{0}']", name.Trim()));
if (parameterStr != null)
{
PerParameter returnObj = new PerParameter(name, parameterStr);
return returnObj;
}
else
{
return null;
}
}
} public class PerParameter
{
public PerParameter(string name, string parameterStr)
{
m_ParameterStr = parameterStr;
m_Name = name;
m_Value = Utility.ExecuteXPathInString(parameterStr, @"/Parameter/text()");
} string m_ParameterStr; private string m_Name;
public string Name { get { return m_Name; } } public PerParameterAttributes Attributes
{
get
{
string[] temp = m_ParameterStr.GetSubString(@"(?<=\<Parameter\s+).+.(?=/?\>)");
if (temp != null && temp.Length > 0)
return new PerParameterAttributes(temp[0]);
else
return null;
}
} string m_Value;
public string Value { get { return m_Value; } } public List<PerParameter> Parameters
{
get
{
List<PerParameter> list = new List<PerParameter>();
XmlDocument doc = new XmlDocument();
doc.LoadXml(m_ParameterStr);
XmlNodeList nodes = doc.SelectNodes("/Parameter/Parameter");
if (nodes != null && nodes.Count > 0)
{
foreach (XmlNode item in nodes)
{
list.Add(new PerParameter(item.Attributes["name"].InnerText, item.OuterXml));
}
}
return list;
}
} public PerParameter this[string name]
{
get
{
string parameterStr = Utility.ExecuteXPathInString(m_ParameterStr, string.Format(@"/Parameter/Parameter[@name='{0}']", name.Trim()));
if (parameterStr != null)
return new PerParameter(name, parameterStr);
else
return null;
}
}
} public class PerParameterAttributes
{
public PerParameterAttributes(string attributes)
{
m_Attributes = attributes;
} string m_Attributes = string.Empty; public string this[string name]
{
get
{
string[] results = m_Attributes.GetSubString(string.Format(@"(?<={0}\s*="").+", name));
if (results != null && results.Length > 0)
{
return results[0].ReplaceString(@""".*", string.Empty);
}
else
return null;
}
}
}
}
} 配置文件示例:
<?xml version="1.0"?>
<Parameters>
<Parameter name="WarehouseNumber">
<Parameter name="USA">9N</Parameter>
<Parameter name="USB">9X</Parameter>
<Parameter name="RoseWill">9R</Parameter>
</Parameter>
<Parameter name="HoldReason">
<Parameter name="B2BHoldReason">B2B Order waiting for approval</Parameter>
<Parameter name="APIHoldReason">Hold By RuleSet API</Parameter>
<Parameter name="HoldReasonForSO">Hold S.O</Parameter>
</Parameter>
<Parameter name="TestAccount">
<Parameter name="Account">7084500</Parameter>
</Parameter> <Parameter name="SpecialItems">
<Parameter name="UPSLabelItem">99-993-001</Parameter>
<Parameter name="GiftCardItem">00-999-157</Parameter>
</Parameter> <Parameter name="DiscountAllocationRegex">
<Parameter name="RegexValue">^(DISCOUNT FOR COMBO #){1}\d{1,10}$|^(DISCOUNT FOR COMBO #){1}\d{1,10}( GIFT){1}$|^(DISCOUNT FOR AUTOADD #){1}\d{1,10}$</Parameter>
</Parameter> </Parameters>
Parameter配置文件获取的更多相关文章
- Spring获取ApplicationContext方式,和读取配置文件获取bean的几种方式
转自:http://chinazhaokeke.blog.163.com/blog/static/109409055201092811354236 Spring获取ApplicationContex ...
- Springboot配置文件获取系统环境变量的值
注意,这里说的是获取系统环境变量的值,譬如Windows里配置的JAVA_HOME之类的,可以直接在Springboot的配置文件中获取. 我们经常使用一些docker管理平台,如DaoCloud.r ...
- spring 配置文件 获取变量(PropertyPlaceholderConfigurer)
转自:https://hbiao68.iteye.com/blog/2031006 1.Spring的框架中,org.springframework.beans.factory.config.Prop ...
- Smarty3——从配置文件获取的变量
再使用配置变量前要 引入配置变量即:{$config_load file=‘file_path’}$marty3中可以从配置文件中 用 # 号包起来引用配置文件中的变量({#config_var_na ...
- MySpring dataSource从配置文件获取
大神就不看了.本篇是一个人笔记. 原来的数据库配置文件是写死的. 看代码:Mybatis的配置文件 <bean id="dataSource" class="org ...
- Mybatis根据配置文件获取session(多数据源)
1.config.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configura ...
- 第四课:通过配置文件获取对象(Spring框架中的IOC和DI的底层就是基于这样的机制)
首先在D盘创建一个文件hero.txt,内容为:com.hero.Hero(此处必须是Hero的完整路径) 接下来是Hero类 package com.hero; public class Hero ...
- Java 获取到配置文件信息
Java程序将数据库或者服务器IP写入到代码中,难免缺少灵活性. 如果写入到配置文件,部署到不通服务器上,只需要修改配置文 件即可. Java怎么读取配置文件 /** * 获取到配置文件信息 * @p ...
- linux 获取命令或配置文件的帮助信息 man、whatis、apropos、--help
man /usr/bin/man man [命令或配置文件]获取帮助信息 man ls /-lman date/-d man services //不需要添加绝对路径/etc/services NAM ...
随机推荐
- 如何成为一位优秀的创业CEO
英文原文:How to Be Startup CEO 编者按:本文来自 Ryan Allis,是一位来自旧金山的创业者和投资人.在 2003 年创立了 iContact,并任 CEO. 做创业公司的 ...
- 流媒体选择Nginx是福还是祸?
CDN,视频云,已经“僧多粥少” 视频直播的持续升温,无意间也让带宽生意的争夺变得异常残酷.一时间,各种云计算.CDN.视频云提供商都在视频尤其是直播上投入重兵,揭竿而起的新生起义军们也正马不停蹄的赶 ...
- Difference between LET and LET* in Common LISP
Difference between LET and LET* in Common LISP LET Parallel binding which means the bindings com ...
- requirejs、backbone.js配置
requirejs初探 参考资料官网:http://requirejs.org中文译文:http://makingmobile.org/docs/tools/requirejs-api-zh reuq ...
- C#实现IDispose接口
.net的GC机制有两个问题:首先GC并不能释放所有资源,它更不能释放非托管资源.其次,GC也不是实时的,所有GC存在不确定性.为了解决这个问题donet提供了析构函数 public class Te ...
- (笔记)Linux内核学习(六)之并发和同步概念
一 临界区和竞争条件 临界区:访问和操作共享数据的代码段. 竞争条件:多个执行线程处于同一个临界区中. 处于竞争条件:造成访问的数据或者资源不一致状态: 对资源i的访问:ProcessA和B访问后得到 ...
- yii2 [行为] behaviors 拦截器
yii2 拦截器 在控制器中可以自定义对action的拦截器,拦截器需要继承 \yii\base\ActionFilter 参考代码: class BaseUserAuthorizeFilter ex ...
- CCF推荐国际学术会议
类别如下计算机系统与高性能计算,计算机网络,网络与信息安全,软件工程,系统软件与程序设计语言,数据库.数据挖掘与内容检索,计算机科学理论,计算机图形学与多媒体,人工智能与模式识别,人机交互与普适计算, ...
- Ubuntu 配置AP总结
1.这个是使用别人写的一个GUI来配置,:http://hi.baidu.com/lexiangtaotao/item/5d4e87f22db132c70cd1c86f 2.使用hostapd配置:h ...
- ubuntu 安装bochs
//首先官网下载bochs源码wget http://bochs.sourceforge.net/svn-snapshot/bochs-20150503.tar.gz//然后解压 tar vxzf b ...