views:

312

answers:

2

There's no obvious entry point for implementing a custom provider for an ADO.NET Data Service using IDataServiceMetadataProvider, and then telling a Data Service to use that provider. Has anyone had any luck in this area? I've tried implementing this interface on my Data Source class, but none of my breakpoints are hit. There is also no (obvious) way to set the provider from the Data Service's DataServiceConfiguration parameter passed in to the InitializeService function.

Any help would be appreciated. Thanks!

Data Services Providers (ADO.NET Data Services)

IDataServiceMetadataProvider Members

+1  A: 

Hi ,
We are looking at revising some of the documentation for these interfaces for RTM. In the meantime , to get the Data Services runtime to pick up your IDataServiceMetadataProvider implementation , you will need to implement the IServiceProvider interface on your Data Service class .

IServiceProvider on MSDN

Sample :

public class northwindService:DataService<northwindContext> , IServiceProvider 
{
   public object GetService(Type serviceType) 
   {
      if (serviceType == typeof(IDataServiceMetadataProvider )) {
        //return instance of type which implements IDataServiceMetadataProvider 
       }
     return null;
    }  
}
Phani Raj
+1 Thanks! I ended up figuring that part out (having cracked open the assembly with .NET Reflector), and got things to work the way I wanted (initially). Unfortunately, we've decided to go another route (A WCF interface to our Data Access Layer with WebGet and WebInvoke attributes). Thank you for your reply!
Pwninstein
+1  A: 

Just to add to Phani reply, you need to make sure that you return both IDataServiceMetadataProvider and IDataServiceQueryProvider from the GetService call. For rest of the interfaces, you have a choice to return it from GetService or implement it on your DataSource class.

Hope this helps.

Thanks Pratik

Pratik Patel
Thanks for the insight!
Pwninstein

related questions