using SKMC.Api.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace SKMC.Api.Recipe.Config
{
///
/// 档案配置器
/// 参数常量类可继承该类
///
public abstract class RecipeParamBase
{
protected readonly RecipeCacher recipeCacher = ObjectFactory.Resolve();
public void InitLoad()
{
foreach (RecipeParam param in recipeCacher.RecipePublicSwitchParams)
{
SetParameter(param);
}
foreach (RecipeParam param in recipeCacher.RecipePublicValueParams)
{
SetParameter(param);
}
foreach (RecipeParam param in recipeCacher.RecipePrivateSwitchParams)
{
SetParameter(param);
}
foreach (RecipeParam param in recipeCacher.RecipePrivateValueParams)
{
SetParameter(param);
}
}
///
/// 设置单个参数到常量中
///
///
public void SetParameter(RecipeParam processParam)
{
FieldInfo field = GetType().GetField(processParam.Code, BindingFlags.Public | BindingFlags.Static);
if (field != null)
{
field.SetValue(null, Convert.ChangeType(processParam.Value, field.FieldType));
processParam.LastValue = processParam.Value;
}
}
}
}