using System.Runtime.InteropServices;
using System.Text;
namespace AmrControl
{
public class AppHelper
{
private static IConfiguration _config;
public AppHelper(IConfiguration configuration)
{
_config = configuration;
}
///
/// 读取指定节点的字符串
///
///
///
public static string ReadAppSettings(params string[] sessions)
{
try
{
if (sessions.Any())
{
return _config[string.Join(":", sessions)];
}
}
catch
{
return "";
}
return "";
}
///
/// 读取实体信息
///
///
///
///
public static List ReadAppSettings(params string[] session)
{
List list = new List();
_config.Bind(string.Join(":", session), list);
return list;
}
public static string BytesToString(byte[] array)
{
if (array == null)
return "";
StringBuilder strBuilder = new StringBuilder();
foreach (var item in array)
{
strBuilder.Append(item.ToString() + " ");
}
return strBuilder.ToString().TrimEnd();
}
public static T BytesToStruct(byte[] array)
{
if (array == null)
return default(T);
int size = Marshal.SizeOf();
IntPtr ptr = Marshal.AllocHGlobal(size);
if(array.Length <= size)
{
Marshal.Copy(array,0,ptr,array.Length);
}
else
{
Marshal.Copy(array, 0, ptr, size);
}
T t = Marshal.PtrToStructure(ptr);
Marshal.FreeHGlobal(ptr);
return t;
}
}
}