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