1

Il n'existe pas de point d'entrée évident pour implémenter un fournisseur personnalisé pour un service de données ADO.NET en utilisant IDataServiceMetadataProvider, puis en demandant à un service de données d'utiliser ce fournisseur. Quelqu'un at-il eu de la chance dans ce domaine? J'ai essayé d'implémenter cette interface sur ma classe de source de données, mais aucun de mes points d'arrêt n'est touché. Il n'existe également aucun moyen (évident) de définir le fournisseur à partir du paramètre DataServiceConfiguration du service de données transmis à la fonction InitializeService.Comment implémenter IDataServiceMetadataProvider et dire à mon service de données d'utiliser ce fournisseur personnalisé?

Toute aide serait appréciée. Merci!

Data Services Providers (ADO.NET Data Services)

IDataServiceMetadataProvider Members

Répondre

1

Nous examinons la révision de certains documents pour ces interfaces pour RTM. En attendant, pour que l'exécution de Data Services prenne en charge votre implémentation IDataServiceMetadataProvider, vous devez implémenter l'interface IServiceProvider sur votre classe de service de données.

IServiceProvider on MSDN

Exemple:

public class northwindService:DataService<northwindContext> , IServiceProvider 
{ 
    public object GetService(Type serviceType) 
    { 
     if (serviceType == typeof(IDataServiceMetadataProvider)) { 
     //return instance of type which implements IDataServiceMetadataProvider 
     } 
    return null; 
    } 
} 
+0

Merci! J'ai fini par trouver cette partie (ayant ouvert l'ensemble avec .NET Reflector), et j'ai commencé à travailler comme je le voulais (initialement). Malheureusement, nous avons décidé d'opter pour une autre voie (une interface WCF vers notre couche d'accès aux données avec les attributs WebGet et WebInvoke). Merci pour votre réponse! – Pwninstein

1

Juste pour ajouter à la réponse Phani, vous devez vous assurer que vous revenez à la fois IDataServiceMetadataProvider et IDataServiceQueryProvider de l'appel GetService. Pour le reste des interfaces, vous avez le choix de le renvoyer depuis GetService ou de l'implémenter dans votre classe DataSource.

Espérons que cela aide.

Merci Pratique

+0

Merci pour la perspicacité! – Pwninstein