| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using SKMC.Api.Core;
- using System;
- using System.Reflection;
- namespace SKMC.Api.Recipe.Config
- {
- /// <summary>
- /// <para>配方参数基类</para>
- /// <para>继承该类可实现即时更新</para>
- /// </summary>
- public abstract class RecipeParamBase
- {
- protected readonly RecipeCacher recipeCacher = ObjectFactory.Resolve<RecipeCacher>();
- 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);
- }
- }
- /// <summary>
- /// 设置单个参数到常量中
- /// </summary>
- /// <param name="recipeParam"></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;
- }
- }
- }
- }
|