You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻找可替代魔法字符串的Microsoft Graph SDK内置常量

回答

目前Microsoft Graph SDK(包括最新的v5版本)并没有提供官方的常量类来封装你用到的这类OData查询参数(如$count、ConsistencyLevel)或附加数据键(如@odata.count)。

如果你想移除魔法字符串,自行编写常量类是最可靠的方案,既能避免重复造轮子的冗余,又能统一管理这些值、减少拼写错误。示例实现如下:

public static class ODataGraphConstants
{
    // OData查询参数
    public const string CountQueryParameter = "$count";
    public const string ConsistencyLevelHeader = "ConsistencyLevel";
    
    // 附加数据中的OData键
    public const string ODataCountKey = "@odata.count";
    
    // 可根据需求扩展其他常用项,比如$filter、$orderby等
}

替换原代码中的魔法字符串:

// 构建查询选项
var queryOptions = new List<QueryOption>()
{
     new QueryOption(ODataGraphConstants.CountQueryParameter, "true"),
     new QueryOption(ODataGraphConstants.ConsistencyLevelHeader, "eventual")
};

// 获取OData计数
var countElement = (JsonElement)users.AdditionalData[ODataGraphConstants.ODataCountKey];

另外补充:在Graph SDK v5中,ConsistencyLevel有对应的枚举Microsoft.Graph.Models.ConsistencyLevel,你可以用它来避免硬编码"eventual"字符串:

var requestConfig = new UsersRequestBuilder.UsersRequestBuilderGetRequestConfiguration
{
    QueryParameters = new UsersRequestBuilder.UsersRequestBuilderGetQueryParameters
    {
        Count = true
    },
    Headers = new Dictionary<string, string>
    {
        { ODataGraphConstants.ConsistencyLevelHeader, Microsoft.Graph.Models.ConsistencyLevel.Eventual.ToString() }
    }
};

但@odata.count这类附加数据键仍需自行封装常量,官方暂无现成实现。

内容的提问来源于stack exchange,提问作者Luk164

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:42:42