json格式配置文件说明:
- NetFramework 中的json配置文件是不允许写注释的,需要先建立对象 然后对其进行反序列化成对象
- NetCore中配置文件的读取网上到处都是 ^^ __^^
工具类
public class JsonConfigHelper
{
private JObject jObject = null;
public string this[string key]
{
get
{
string str = "";
if (jObject != null)
{
str = GetValue(key);
}
return str;
}
}
public T GetConfig<T>(string path) where T :class,new()
{
T result = new T();
try
{
using (StreamReader file = new StreamReader(path, Encoding.Default))//防止中文乱码 使用Encoding.Default
{
var ss = file.ReadToEnd();
result = JsonConvert.DeserializeObject<T>(ss);
};
}
catch (Exception e)
{
LogHelper<SendMsgToSeeyon>.Error(DateTime.Now + "配置文件读取出错(注意:配置文件不能添加注释):" + e.Message);
}
return result;
}
public T GetValue<T>(string key) where T : class
{
return JsonConvert.DeserializeObject<T>(jObject.SelectToken(key).ToString());
}
public string GetValue(string key)
{
return Regex.Replace((jObject.SelectToken(key).ToString()), @"\s", "");
}
}
使用
var setting = new JsonConfigHelper().GetConfig<SettingModel>(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)+"/../Content/VanYangSendMsgJson.json");
说明:
读取当前执行的dll的路径 Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)