2

私は ac# Web サービスに取り組んでいます。コードで構成可能な 16 進数値が必要な特別な要件があります。この 16 進値をバイト変数にコピーする必要があります。appSettings を介して app.config ファイルに渡そうとしています。

例えば

byte ASCII_VALUE = 0xA5;

この 0xA5 を app.config ファイルから取得し、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# の同じコード。しかし、16進値を取得するために何をすべきかをまだ理解できていません。

アイデアはありますか?助けてください。

よろしくお願いします。

4

3 に答える 3

2

また、SoapHexBinaryValueを確認することもできます。これは、16 進文字列を直接解析し、そのプロパティで Byte 値を提供します。

于 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

メソッドをオーバーライドして、16 進数を受け入れることができます。

これは MSDN の例です。 byte val = Byte.Parse(num, NumberStyles.HexNumber);

于 2013-03-08T18:15:22.810 に答える