强制决策方法
强制决策方法
本主题介绍强制决策方法,这些方法可用于强制用户进入云眼灰度标帜(Feature Flag)AB实验中的特定变体。
这些方法将通过强制用户进入特定变体来帮助测试和调试客户端应用程序的各种流。
C# SDK 将在做出任何决策之前检查强制决策。如果为请求的标帜找到匹配项,C# SDK 将在做出正常决策之前立即返回强制决策(忽略受众条件和流量分配)。
下面介绍了 C# SDK 将遵循的特定方案:
标记到决策
- SDK 将在给定标帜的任何决策调用开始时查找。如果为该标帜找到匹配的标帜到决策强制决策,它将返回该决定。
 
从实验规则到决策
- SDK 将在决策开始时查找给定实验规则(标帜键)。如果为标帜找到匹配的实验规则到决策强制决策,它将返回决策。
 
从交付规则到决策
- SDK 将在决策开始时查找给定的传递规则(标帜键)。如果找到匹配的传递规则到决策强制决策,它将返回该决策。
 
❗️
在调用任何强制决策方法之前,必须将变体关联到标帜规则。
对于强制决策,C# SDK 将像其他正常决策一样触发展示事件和通知(除非被 disableDecisionEvent 选项禁用)。
📘
这些强制决策不是永久性的,将在重新初始化 EyeofcloudUserContext 时清除。
有关每种方法的更多信息,请单击下面的方法名称:
云眼分桶结果 EyeofcloudDecision上下文
C#
public class EyeofcloudDecisionContext {    
    public EyeofcloudDecisionContext(string flagKey, string ruleKey = null);       
    public String FlagKey;       
    public String RuleKey; 
}云眼强制决策
C#
public class EyeofcloudForcedDecision {    
    public EyeofcloudForcedDecision(string variationKey);    
    public string VariationKey; 
}设置强制决策方法- setForcedDecision()
版本
3.11.0
描述
为给定的EyeofcloudDecisionContext设置强制决策(variationKey)。
参数
下表列出了 C# SDK 的必需参数和可选参数。
| 帕兰特 | 类型 | 描述 | 
|---|---|---|
| 所需的上下文 | 类 | EyeofcloudDecisionContext的实例,其中包含要获取的强制决策的必需flagKey和可选ruleKey。 | 
| (必选)决定 | 类 | EyeofcloudForcedDecision的实例,其中包含要设置的强制variationKey决策所需的实例。 | 
返回
一个布尔值,指示是否成功完成了强制决策(variationKey) 的设置。
例
请参阅此处的完整 C# SDK 示例。
获取强制决策方法 - GetForcedDecision()
变体
3.11.0
描述
返回给定EyeofcloudDecisionContext的强制决策(variationKey)。返回EyeofcloudForcedDecision实例,如果没有匹配项,则返回 null。
参数
下表列出了 C# SDK 的必需参数和可选参数。
| 参数 | 类型 | 描述 | 
|---|---|---|
| 所需的上下文 | 类 | EyeofcloudDecisionContext的实例,其中包含要获取的强制决策的必需flagKey和可选ruleKey。 | 
返回
EyeofcloudForcedDecision上下文的强制决策实例,如果没有匹配项,则为 null。
例
请参阅此处的完整 C# SDK 示例。
删除强制决策方法 - 删除强制决策()
变体
3.11.0
描述
删除给定EyeofcloudDecisionContext的强制决策(variationKey)。
参数
下表列出了 C# SDK 的必需参数和可选参数。
| 参数 | 类型 | 描述 | 
|---|---|---|
| 所需的上下文 | 类 | EyeofcloudDecisionContext的实例,其中包含要获取的强制决策的必需flagKey和可选ruleKey。 | 
返回
删除强制决策(variationKey)时的成功/失败布尔状态。
例
请参阅此处的完整 C# SDK 示例。
删除所有强制决策方法 - 删除所有强制决策()
变体
3.11.0
描述
删除用户上下文的所有强制决策 (variationKey)。
参数
下表列出了 C# SDK 的必需参数和可选参数。
| 参数 | 类型 | 描述 | 
|---|---|---|
| 没有 | 不适用 | 不适用 | 
返回
成功/失败布尔状态。
例
请参阅此处的完整 C# SDK 示例。
完整代码示例
下面是如何使用新的 C# 方法来管理强制决策的示例:
C#
var Eyeofcloud = EyeofcloudFactory.NewDefaultInstance("<your sdk key>"); 
var attributes = new UserAttributes(); 
var user = Eyeofcloud.CreateUserContext(RandomUserId(), attributes);  
var flagContext = new EyeofcloudDecisionContext("flag-1", null); 
var flagAndABTestContext = new EyeofcloudDecisionContext("flag-1", "ab-test-1"); 
var flagAndDeliveryRuleContext = new EyeofcloudDecisionContext("flag-1", "delivery-1"); 
var variationAForcedDecision = new EyeofcloudForcedDecision("variation-a"); 
var variationBForcedDecision = new EyeofcloudForcedDecision("variation-b"); 
var variationOnForcedDecision = new EyeofcloudForcedDecision("on");  
// set a forced decision for a flag 
var success = user.SetForcedDecision(flagContext, variationAForcedDecision); 
var decision = user.Decide("flag-1");  
// set a forced decision for an ab-test rule 
success = user.SetForcedDecision(flagAndABTestContext, variationBForcedDecision); 
decision = user.Decide("flag-1");  
// set a forced variation for a delivery rule 
success = user.SetForcedDecision(flagAndDeliveryRuleContext, variationOnForcedDecision); 
decision = user.Decide("flag-1");  
// get forced variations 
var forcedDecision = user.GetForcedDecision(flagContext); 
Console.WriteLine(string.Format("ForcedDecision variationKey = {0}", forcedDecision.VariationKey));  
// remove forced variations 
success = user.RemoveForcedDecision(flagAndABTestContext); 
success = user.RemoveAllForcedDecisions();