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 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; } } } }