【问题标题】:Passing a hex value in app.config file在 app.config 文件中传递十六进制值
【发布时间】:2013-02-24 09:10:19
【问题描述】:

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

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

非常感谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我想通了。

      需要做的是

      在 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;
      

      【讨论】:

        【解决方案3】:

        你试过Byte.Parse吗?

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

        你可以重写接受十六进制的方法。

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

        【讨论】:

        • 我确实尝试过这种方法。但字符串是十六进制格式。此解析方法只接受数字格式的字符串。比如“123”。
        • 我找到了解决方案。 :D
        • @Govs 请在此处发布您的解决方案作为答案
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-26
        • 2018-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-25
        • 2014-04-18
        相关资源
        最近更新 更多