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. LeetCode:Substring with Concatenation of All Words (summarize)

    题目链接 You are given a string, S, and a list of words, L, that are all of the same length. Find all st ...

  2. ubuntu 16.04 有道词典

    依赖环境 sudo apt install \ python3-pyqt5 \ python3-requests \ python3-xlib \ python3-pil \ tesseract-oc ...

  3. java产生随机数的几种方式

    java产生随机数的几种方式 一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他 ...

  4. offsetWidth、clientWidth、width、scrollWidth区别及js与jQuery获取的方式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. Android开发:第四日番外——Assets文件夹和RAW文件夹区别

    话说上回说到SQLite数据库,其中涉及到把已经设计好的数据库打包到APK中,提到可以放置在Assert文件夹或者RAW文件夹中,那么两者到底有什么区别呢?让我们来探究一下. 一.res/raw和as ...

  6. 关于移动App的五个提问

    1.你的移动App利用了手机的哪些特性? 2.你们是否有用移动的角度和思维来考虑产品形态?还是简单的把Web照搬到手机上? 3.用户有什么特殊的动力去安装你们的App? 4.用户是否能很好的上手和使用 ...

  7. dede教程之后台登录是自动跳出解决方法

    有时也不知道什么原因,登录后台时输入全部正确点确认按钮时却会自动跳出.必须输入http://你的域名/dede/login.php才可以登录.通过尝试最终解决了问题,下面分享出来: 1.打开根目录da ...

  8. phonegap3.0 simple

    environment: window8(64bit) First you go to the phonegap site and install it. note that installing y ...

  9. 查看JAVA进程中哪个线程CPU消耗最高

    一,在centos linux 上查看进程占用cpu过高 top  shift+h 查看哪个进程程消耗最高     二,查看JAVA进程中哪个线程消耗最高   2.1 导出java运行的线程信息   ...

  10. Mac安装win7

    为了给老板的mac air装上win7,研究了大致4-5小时,终于搞定! 新版的air安装实在是太不容易了,现在记录如下:   制作硬件:8G优盘一个(至少大于6G空白优盘一个),Macbook ai ...