0

我想添加一些自定义插件来一睹为快。但是,我想做的分析很昂贵,所以我只想在为当前请求打开 glimpse id 的情况下这样做。我可以访问代码中的属性来告诉我 glimpse 当前是否处于打开状态。

就像是:

if(GlimpseConfig.IsGlimpseActive)
{

} 
4

1 回答 1

2

首先,如果您正在为 Glimpse 创建一个像自定义选项卡一样的插件,那么只有在 Glimpse 对给定请求处于活动状态时,才会要求您的选项卡提供数据。

所以要明确一点,如果您想在标签中进行上述检查,那么这是没有必要的,因为 Glimpse 不会首先给您打电话。但是,如果您正在谈论启用/禁用某些将由您的自定义选项卡访问并且可能很昂贵的分析代码,那么我想检查可能确实会有所帮助。不幸的是,如果不滥用Glimpse 内部结构,目前无法做到这一点。

您的问题似乎与此问题具有相同的要求,因此我不会在此处粘贴相同的答案,但我将粘贴代码示例以确保此答案的完整性。

但简而言之,如果您牢记不能保证这是否会在即将发布的版本中继续有效,您可以执行以下操作,但请查看其他问题以获取更多详细信息。

public static class CurrentGlimpseStatus
{
    private const string GlimpseCurrentRuntimePolicyKey = "__GlimpseRequestRuntimePermissions";

    public static bool IsEnabled
    {
        get
        {
            RuntimePolicy currentRuntimePolicy = RuntimePolicy.Off;
            if (System.Web.HttpContext.Current.Items.Contains(GlimpseCurrentRuntimePolicyKey))
            {
                currentRuntimePolicy = (RuntimePolicy)System.Web.HttpContext.Current.Items[GlimpseCurrentRuntimePolicyKey];
            }

            return !currentRuntimePolicy.HasFlag(RuntimePolicy.Off);
        }
    }
}
于 2013-10-18T17:35:44.837 回答