using SKMC.Api.Common;
using System;
using System.Reflection;
namespace SKMC.Api.Recipe.Config
{
///
/// 配方参数基类
/// 继承该类可实现即时更新
///
public abstract class RecipeParamBase
{
protected readonly RecipeCacher recipeCacher = ObjectFactory.Resolve();
public void InitLoad()
{
foreach (RecipeParam param in recipeCacher.RecipeProfile.RecipeBaseModParams)
{
SetParameter(param);
}
foreach (RecipeParam param in recipeCacher.RecipeProfile.RecipeBaseValueParams)
{
SetParameter(param);
}
foreach (RecipeParam param in recipeCacher.RecipeProfile.RecipeAdvModParams)
{
SetParameter(param);
}
foreach (RecipeParam param in recipeCacher.RecipeProfile.RecipeAdvValueParams)
{
SetParameter(param);
}
}
///
/// 设置单个参数到常量中
///
///
public void SetParameter(RecipeParam recipeParam)
{
FieldInfo field = GetType().GetField(recipeParam.Code, BindingFlags.Public | BindingFlags.Static);
if (field != null)
{
field.SetValue(null, Convert.ChangeType(recipeParam.Value, field.FieldType));
recipeParam.LastValue = recipeParam.Value;
}
}
}
}