2

我正在开发 ac# 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# 中的相同代码。但我仍然无法弄清楚如何获得十六进制值。

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

提前非常感谢。

4

3 回答 3

2

此外,您可能想看看SoapHexBinary,它直接解析十六进制字符串并为您提供字节值及其Value属性。

于 2013-03-08T19:47:23.553 回答
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;
于 2013-03-08T18:30:37.837 回答
0

你试过Byte.Parse吗?

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

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

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

于 2013-03-08T18:15:22.810 回答