Как мне реализовать IDataServiceMetadataProvider и указать моей службе данных использовать этого специального поставщика?
-
12-09-2019 - |
Вопрос
Не существует очевидной точки входа для реализации пользовательского поставщика для службы данных ADO.NET с использованием IDataServiceMetadataProvider
, а затем сообщаем службе данных использовать этого поставщика.Кому-нибудь повезло в этой области?Я попытался реализовать этот интерфейс в своем классе источника данных, но ни одна из моих точек останова не была достигнута.Также не существует (очевидного) способа установить провайдера из Службы данных. DataServiceConfiguration
параметр, передаваемый в InitializeService
функция.
Любая помощь будет оценена по достоинству.Спасибо!
Решение
Мы рассматриваем возможность пересмотра некоторой документации по этим интерфейсам для RTM.Тем временем, чтобы среда выполнения Data Services могла использовать вашу реализацию IDataServiceMetadataProvider, вам необходимо реализовать интерфейс IServiceProvider в вашем классе Data Service.
Образец :
public class northwindService:DataService<northwindContext> , IServiceProvider
{
public object GetService(Type serviceType)
{
if (serviceType == typeof(IDataServiceMetadataProvider )) {
//return instance of type which implements IDataServiceMetadataProvider
}
return null;
}
}
Другие советы
Просто чтобы добавить к ответу Фани, вам нужно убедиться, что вы возвращаете как IDataServiceMetadataProvider, так и IDataServiceQueryProvider из вызова GetService.Что касается остальных интерфейсов, у вас есть выбор: вернуть их из GetService или реализовать в своем классе DataSource.
Надеюсь это поможет.
Спасибо, Пратик