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. WPF与winform与silverlight的区别

    收到了一封学生的邮件: =========================== 金老师您好: 最近在学C#.NET,基本语法学习的差不多了,接下来准备学习图形界面设计部分.但是我目前对于.NET的Wi ...

  2. 【实用技巧】取消Win7开机账户的手动选择

    因为前面碰到的一些事情,稍有感慨. 关于win7的一些小技巧都不是什么很有技术含量东西,或者说很浅显.我说一个技巧,也许很多人都知道,也许也早有人说过.但我想说的是我不是在炫耀什么,我只是想分享一些我 ...

  3. tcpdump交叉编译及使用

    第一步.下载 官方网站:http://www.tcpdump.org/ 需要下载libpcap包和tcpdump包 我下载的版本是:libpcap-1.4.0.tar.gz和tcpdump-4.4.0 ...

  4. Java 7 jstat – JVM Statistics Monitoring Tool【翻译】

    原文地址:Java 7 jstat 本文内容 语法 参数 描述 虚拟机标识符 选项 一般选项 输出选项 示例 先发出来,然后慢慢翻译~ 语法 jstat [ generalOption | outpu ...

  5. Vmware9.0打开早期版本报错:this virtual machine’s policies are too old to be run by this version of vmware workstation”

    VMWare从6.0升级到9.0,打开以前的虚拟机报错如下: “this virtual machine’s policies are too old to be run by this versio ...

  6. iPhone设备字体详解

    做iPhone开发的同学一定对:UIFont systemFontOfSize.boldSystemFontOfSize.italicSystemFontOfSize很熟悉,但你们知道它们都是什么字体 ...

  7. C# 匿名委托、匿名方法、匿名对象、Lambda表达式

    一.匿名类型可通过使用 new 运算符和对象初始值创建匿名类型.示例:var v = new { Name = "Micro", Message = "Hello&quo ...

  8. [转载] Calculating Entropy

    From:  johndcook.com/blog For a set of positive probabilities pi summing to 1, their entropy is defi ...

  9. ArcGIS Server API for JavaScript调用错误:已阻止跨源请求:同源策略禁止读取位于......

    已阻止跨源请求:同源策略禁止读取位于 http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapSe ...

  10. 十分钟理解Gradle

    一.什么是Gradle 简单的说,Gradle是一个构建工具,它是用来帮助我们构建app的,构建包括编译.打包等过程.我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”自动为我们构建ap ...