ServiceStack - расширение средства просмотра метаданных AutoQuery
Плагин AutoQuery Viewer от ServiceStack позволяет декорировать AutoQueries, используя атрибуты метаданных 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; }
1 ответ
Вы не можете продлить [AutoQueryViewer]
атрибут, который жестко закодирован. Информация об атрибуте используется для заполнения Typed AutoQueryMetadataResponse DTO, который является сериализованным для предоставления сервисов метаданных AutoQuery. Я только что добавил словари Meta String на MetadataType
, AutoQueryViewerConfig
, AutoQueryViewerUserInfo
, AutoQueryOperation
а также AutoQueryMetadataResponse
DTO в этом коммите, чтобы вы могли присоединять дополнительные метаданные к DTO метаданных AutoQuery, используя MetadataFilter
Например:
Plugins.Add(new AutoQueryMetadataFeature {
MetadataFilter = response => {
response.Meta = new Dictionary<string,string> {
{ "SourceApplicationName", "My App" },
{ "SourceDescription", "My App Description" },
};
}
});
Это изменение доступно с версии 4.5.13, которая теперь доступна на MyGet.