private static IBuildPlan GetPlanFromContext(IBuilderContext context, Type typeToBuild, string idToBuild) { IBuildPlanPolicy planPolicy = GetPlanPolicyFromContext(context, typeToBuild, idToBuild); IBuildPlan plan = planPolicy.Get(typeToBuild); if (plan == null) { IPlanBuilderPolicy builderPolicy = GetPlanBuilderFromContext(context, typeToBuild, idToBuild); plan = builderPolicy.CreatePlan(typeToBuild, idToBuild); planPolicy.Set(typeToBuild, plan); } return(plan); }