我正在开发一个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="¥"/>
</appSettings>
和c#中的相同代码。但我仍然无法弄清楚如何获得十六进制值。
任何想法伙计们???请帮忙。
提前多多感谢。
答案 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);