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配置文件获取的更多相关文章

  1. Spring获取ApplicationContext方式,和读取配置文件获取bean的几种方式

    转自:http://chinazhaokeke.blog.163.com/blog/static/109409055201092811354236  Spring获取ApplicationContex ...

  2. Springboot配置文件获取系统环境变量的值

    注意,这里说的是获取系统环境变量的值,譬如Windows里配置的JAVA_HOME之类的,可以直接在Springboot的配置文件中获取. 我们经常使用一些docker管理平台,如DaoCloud.r ...

  3. spring 配置文件 获取变量(PropertyPlaceholderConfigurer)

    转自:https://hbiao68.iteye.com/blog/2031006 1.Spring的框架中,org.springframework.beans.factory.config.Prop ...

  4. Smarty3——从配置文件获取的变量

    再使用配置变量前要 引入配置变量即:{$config_load file=‘file_path’}$marty3中可以从配置文件中 用 # 号包起来引用配置文件中的变量({#config_var_na ...

  5. MySpring dataSource从配置文件获取

    大神就不看了.本篇是一个人笔记. 原来的数据库配置文件是写死的. 看代码:Mybatis的配置文件 <bean id="dataSource" class="org ...

  6. Mybatis根据配置文件获取session(多数据源)

    1.config.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configura ...

  7. 第四课:通过配置文件获取对象(Spring框架中的IOC和DI的底层就是基于这样的机制)

    首先在D盘创建一个文件hero.txt,内容为:com.hero.Hero(此处必须是Hero的完整路径) 接下来是Hero类 package com.hero; public class Hero ...

  8. Java 获取到配置文件信息

    Java程序将数据库或者服务器IP写入到代码中,难免缺少灵活性. 如果写入到配置文件,部署到不通服务器上,只需要修改配置文 件即可. Java怎么读取配置文件 /** * 获取到配置文件信息 * @p ...

  9. linux 获取命令或配置文件的帮助信息 man、whatis、apropos、--help

    man /usr/bin/man man [命令或配置文件]获取帮助信息 man ls /-lman date/-d man services //不需要添加绝对路径/etc/services NAM ...

随机推荐

  1. android如何播放和录制音频

    视频录制功能正在走来,在Androidsdk中有与之相关的类:android.media.MediaRecorder.当然,因为模拟器上没有提供必要的硬件设施,所以在学习过程中并不能实现.Media能 ...

  2. php内存缓存

    1.文件方式缓存 哈希子目录缓存 2.APC APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”.它为我们提供了缓存和优化PHP的中间代码的框架. APC的缓存分两 ...

  3. MySQL 学习用employee数据库表参考使用

    download place:https://launchpad.net/test-db/ ,choose this file from the right panel:employees_db-fu ...

  4. WHY翻写NEHE与红龙的3D图形程序 [开源]

    个人认为学习3D图形程序开发,有两套经典教程.D3D的<D3D游戏开发编程基础>也就是红龙那本书.OpenGL的NEHE教程.为向经典致敬,将我之前翻写他们的程序开源. 我所做的工作是将其 ...

  5. C++ 记事本: 变量

    C++ 变量也许和其他语言的变量没有什么差别.就是用来存储一些可能会变值的容器. 当然 C++ 变量里又分为 原子类型 的(int , char ,bool 等等),复合类型 的(struct ,cl ...

  6. WPF 的datagrid 列名中没有显示下划线是怎么回事?

    引用:http://www.cnblogs.com/sqzhuyi/archive/2011/07/26/sqlserverclient.html#2831497 功能介绍:输入查询语句,显示列表 出 ...

  7. Mac Port 基本用法总结

    Mac Port 基本用法总结 Mac Port 基本用法总结 1. Mac Port的下载地址 http://www.macports.org/install.php 2. Mac Port的说明文 ...

  8. Ecshop文章列表页显示内容摘要

    本教程中讲到的“内容摘要”指的是文章内容的前 60个字符(当然也可以是前40个,前50个等等) 下面以 2.7.2版 + 官方默认模板 为例进行讲解: 1).修改 includes/lib_artic ...

  9. Reset Entity-Framework Migrations

    You need to delete the state: Delete the migrations folder in your project Delete the __MigrationHis ...

  10. php 生成 Json

    php 生成 Json 部分 <?php $arr_result = array(); //返回值 $arr_result['result'] = '0'; $arr_result['calle ...