| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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
- {
- /// <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.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);
- }
- }
- /// <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;
- }
- }
- }
- }
|