私は自分のコードに4バイトの配列として必要なIPアドレスを持っています。しかし私はJSON設定ファイルに "192.168.0.1"のようなフォーマットの文字列として保存したいと思います。それから私は逆を行い、それを脱直列化したいと思う。バイト配列を文字列としてシリアル化する
私のSettings.jsonファイルの目標は人間が編集可能だからです。
これを行う方法はありますか?
は、私は私が書いた
public class Settings
{
public string PLCIP;
public byte[] RightTesterIP;
public byte[] LeftTesterIP;
}
コンバータ方式をシリアル化していますNewtonsoft JSONパッケージ
クラスを使用しています。ちょうどそれらを実装する場所がわからない。
private string ConvertIPByteArraytoString(byte[] ip)
{
StringBuilder builder = new StringBuilder();
builder.Append(ip[0]);
for (int i = 1; i < ip.Length; i++)
{
builder.Append(".");
builder.Append(ip[i]);
}
return builder.ToString();
}
private byte[] ConvertIPStringToByteArray(string ip, string ParameterName)
{
var blah = new byte[4];
var split = ip.Split('.');
if (split.Length != 4)
{
//Log.Error("IP Address in settings does not have 4 octets.Number Parsed was {NumOfOCtets}", split.Length);
//throw new SettingsParameterException($"IP Address in settings does not have 4 octets. Number Parsed was {split.Length}");
}
for(int i = 0; i < split.Length; i++)
{
if(!byte.TryParse(split[i], out blah[i]))
{
//var ex = new SettingsParameterException($"Octet {i + 1} of {ParameterName} could not be parsed to byte. Contained \"{split[i]}\"");
//Log.Error(ex,"Octet {i + 1} of {ParameterName} could not be parsed to byte. Contained \"{split[i]}\"", i, ParameterName, split[i]);
//throw ex;
}
}
return blah;
}
なぜクラスIPAddressを使用しないのですか?また、Parseメソッドもあります。https://msdn.microsoft.com/en-us/library/system.net.ipaddress.parse(v=vs.110).aspx – Greg