1

ServiceStack 的AutoQuery Viewer Plugin允许您使用 AutoQuery 元数据属性来装饰 AutoQuery。我使用 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; }
4

1 回答 1

1

您不能扩展[AutoQueryViewer]硬编码的属性。属性上的信息用于填充Typed AutoQueryMetadataResponse DTO,该 DTO 被序列化以提供 AutoQuery 元数据服务。我刚刚在此提交MetadataType中在、AutoQueryViewerConfig、和DTO上添加了元字符串字典AutoQueryViewerUserInfo,因此您可以使用 将其他元数据附加到 AutoQuery 元数据 DTO ,例如:AutoQueryOperationAutoQueryMetadataResponseMetadataFilter

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

此更改从v4.5.13开始可用,现在可在 MyGet 上使用

于 2017-06-19T09:39:35.307 回答