代码之家  ›  专栏  ›  技术社区  ›  Newbee

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

  •  2
  • Newbee  · 技术社区  · 12 年前

    我正在开发一个c#网络服务。我有一个特殊的要求,在我的代码中需要一个可配置的十六进制值。我需要将这个十六进制值复制到一个字节变量中。我正试图通过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 回复  |  直到 12 年前
        1
  •  2
  •   Rafael    12 年前

    此外,您可能还想看看 SoapHexBinary ,它直接解析十六进制字符串,并使用 Value 所有物

        2
  •  1
  •   Newbee    12 年前

    我想明白了。

    需要做的是

    在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
  •  0
  •   Dave S    12 年前

    你试过了吗 Byte.Parse ?

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

    您可以重写该方法以接受十六进制。

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

    推荐文章