ServiceStack - 扩展 AutoQuery 元数据查看器

ServiceStack - extending AutoQuery Metadata Viewer

ServiceStack 的 AutoQuery Viewer Plugin 允许您使用 AutoQuery 元数据属性装饰 AutoQueries。我使用 AutoQuery 中现有的元数据服务来支持前端并显示搜索查询(类似于现有的 AutoQuery 管理功能)

如何向 AutoQueryViewerAttribute 扩展/添加其他属性,以便它们在 Autoquery 元数据服务中可用?

当前可用的 AutoQuery 属性列表:

public class AutoQueryViewerAttribute : AttributeBase
{
    public string Title { get; set; }

    public string Description { get; set; }

    public string IconUrl { get; set; }

    public string BrandUrl { get; set; }

    public string BrandImageUrl { get; set; }

    public string TextColor { get; set; }

    public string LinkColor { get; set; }

    public string BackgroundColor { get; set; }

    public string BackgroundImageUrl { get; set; }

    public string DefaultSearchField { get; set; }

    public string DefaultSearchType { get; set; }

    public string DefaultSearchText { get; set; }

    public string DefaultFields { get; set; }
}

我想扩展 AutoQueryViewerAttribute 属性列表并添加两个附加属性:

public string SourceDescription { get; set; }

public string SourceApplicationName { get; set; }

您不能扩展硬编码的 [AutoQueryViewer] 属性。属性上的信息用于填充 Typed AutoQueryMetadataResponse DTO which is what's serialized to provide the AutoQuery metadata services. I've just added Meta String Dictionaries on the MetadataType, AutoQueryViewerConfig, AutoQueryViewerUserInfo, AutoQueryOperation and AutoQueryMetadataResponse DTO in this commit,因此您可以使用 MetadataFilter 将其他元数据附加到 AutoQuery 元数据 DTO,例如:

Plugins.Add(new AutoQueryMetadataFeature {
    MetadataFilter = response => {
        response.Meta = new Dictionary<string,string> {
           { "SourceApplicationName", "My App" },
           { "SourceDescription", "My App Description" },
        };
    }
});

此更改适用于 v4.5.13,现在 available on MyGet