在app.config文件中传递十六进制值

时间:2013-03-08 18:10:18

标签: asp.net .net web-services c#-4.0 app-config

我正在开发一个c#web服务。我有一个特殊要求,我需要在我的代码中使用可配置的十六进制值。我需要在字节变量中复制这个十六进制值。我试图通过appSettings在app.config文件中传递它。

例如

byte ASCII_VALUE = 0xA5;

我想从app.config文件中获取此0xA5并将其复制到ASCII_VALUE。

我目前在app.config文件中使用以下代码:

<appSettings>
  <add key="Ascii_value" value="0xA5"/>
</appSettings>

在我正在做的c#代码中:

byte ASCII_VALUE = (byte)ConfigurationManager.AppSettings["Ascii_value_for_pound"];

但是因为这是一个字符串,所以不会直接将其转换为字节值。

我也试过

<appSettings>
  <add key="Ascii_value" value="&#xA5;"/>
</appSettings>

和c#中的相同代码。但我仍然无法弄清楚如何获得十六进制值。

任何想法伙计们???请帮忙。

提前多多感谢。

3 个答案:

答案 0 :(得分:2)

另外,您可能需要查看SoapHexBinary,它会直接解析十六进制字符串,并为您提供具有Value属性的字节值。

答案 1 :(得分:1)

我明白了。

需要做的是

在app.config中

<add key="Ascii_value" value="A5"/>

在c#

string strAsciiValue = ConfigurationManager.AppSettings["Ascii_value"];
int intAsciiValue = Int32.Parse(strAsciiValue, System.Globalization.NumberStyles.HexNumber);
byte ASCII_VALUE = (byte)intAsciiValue;

答案 2 :(得分:0)

您是否尝试过Byte.Parse

以下是MSDN链接: http://msdn.microsoft.com/en-GB/library/4eszwye3.aspx

您可以覆盖该方法以接受十六进制。

这是MSDN示例: byte val = Byte.Parse(num, NumberStyles.HexNumber);