在 Gracenote Web 的 C# 包装器中设置详细级别 API

Setting detail levels in the C# wrapper for the Gracenote Web API

我目前正在使用 Park Square 制作的 C# 包装器来处理 Gracenote Web API,但我不知道如何设置细节级别。

目前 Search() 方法只有 returns 一级关于流派、情绪、速度等的详细信息,但我想获得尽可能多的详细信息。

目前我的代码如下所示:

var gnRes = gnClient.Search(new SearchCriteria {
    AlbumTitle = albumName,
    Artist = artistName,
    TrackTitle = trackTitle,
    SearchMode = SearchMode.BestMatchWithCoverArt,
    SearchOptions = SearchOptions.Mood | SearchOptions.Tempo | SearchOptions.ArtistOriginEraType
});

我发现 SearchCriteria 对象有一个 ResponseDetail class 表明确实可以设置细节级别,但我不知道如何正确使用它。为包装器发布的文档没有提到它。

我找到了如何执行此操作并获得我想要的响应类型。

        SearchCriteria searchCriteria = new SearchCriteria();
        ResponseDetail detail = new ResponseDetail();

        detail.GenreLevels = ResponseDetail.Level.Three;
        detail.MoodLevels = ResponseDetail.Level.Two;
        detail.TempoLevels = ResponseDetail.Level.Three;
        detail.ArtistEraLevels = ResponseDetail.Level.Two;
        detail.ArtistOriginLevels = ResponseDetail.Level.Four;
        detail.ArtistTypeLevels = ResponseDetail.Level.Two;

        searchCriteria.AlbumTitle = albumTitle;
        searchCriteria.Artist = artistName;
        searchCriteria.TrackTitle = trackTitle;

        searchCriteria.SearchMode = SearchMode.BestMatch;
        searchCriteria.SearchOptions = SearchOptions.Mood | SearchOptions.Tempo | SearchOptions.ArtistOriginEraType;
        searchCriteria.ResponseDetail = detail;

        SearchResult gnRes = gnClient.Search(searchCriteria);