source code checkin

This commit is contained in:
Brett Hewitson 2021-01-07 16:23:23 +10:00
parent 5f8fb2c825
commit 7e57b72e35
675 changed files with 168433 additions and 0 deletions

View file

@ -0,0 +1,64 @@
using System.IO;
using System.Runtime.Serialization.Json;
namespace ServerManagerTool.Plugin.Common
{
public static class JsonUtils
{
public static T DeserializeFromFile<T>(string file)
{
if (string.IsNullOrEmpty(file) || !File.Exists(file))
return default(T);
StreamReader streamReader = null;
try
{
streamReader = File.OpenText(file);
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
return (T)serializer.ReadObject(streamReader.BaseStream);
}
catch
{
return default(T);
}
finally
{
if (streamReader != null)
streamReader.Close();
}
}
public static bool SerializeToFile<T>(T value, string file)
{
if (value == null)
return false;
StreamWriter streamWriter = null;
try
{
var folder = Path.GetDirectoryName(file);
if (!Directory.Exists(folder))
Directory.CreateDirectory(folder);
streamWriter = File.CreateText(file);
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
serializer.WriteObject(streamWriter.BaseStream, value);
return true;
}
catch
{
return false;
}
finally
{
if (streamWriter != null)
streamWriter.Close();
}
}
}
}