Image via WCF Data Service
Bonjour à tous,
Je me lance petit à petit dans le développement d'un service web WCF Data Service. J'ai utilisé le framework Entity pour les accès à la base de données et un client Silverlight.
J'ai suivi les tutoriels qu'on peut trouver dans MSDN (ici) et je suis un peu bloqué sur le How To qui permet de diffuser une image via un flux à partir du service web.
Voici comment est déclaré mon service de données:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
public class Northwind : DataService<NorthwindEntities>, IServiceProvider
{
// Cette méthode n'est appelée qu'une seule fois pour initialiser les stratégies au niveau des services.
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead
| EntitySetRights.WriteMerge
| EntitySetRights.WriteReplace);
config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead
| EntitySetRights.AllWrite);
config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead);
config.SetEntitySetAccessRule("Products", EntitySetRights.AllRead
| EntitySetRights.WriteReplace);
config.SetEntitySetAccessRule("Employees", EntitySetRights.AllRead | EntitySetRights.WriteMerge | EntitySetRights.WriteReplace);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
config.SetEntitySetPageSize("Orders", 2);
config.SetEntitySetPageSize("Order_Details", 2);
}
public object GetService(Type serviceType)
{
if (serviceType == typeof(IDataServiceStreamProvider))
{
NorthwindStreamProvider provider = new NorthwindStreamProvider(this.CurrentDataSource);
this.ProcessingPipeline.ProcessingChangeset += new EventHandler<EventArgs>(provider.SaveStreamToDatabase);
return provider;
}
return null;
}
} |
Voici donc l'erreur que l'obtiens lorsque j'exécute mon client Silverlight:
Citation:
Cette opération nécessite que l'entité spécifiée représente une entrée de lien média (Media Link Entry). Nom du paramètre : entity.
J'ai constaté deux choses:
- Lorsque je définis l'attribut m:HasStream="true" dans le XML de mon modèle d'entités, le service me renvoie une erreur quand je tente d'accéder à mon entité (le namespace a bien été ajouté au préalable). Par contre, quand j'ajoute l'attribut [HasStream] à la classe représentant mon entité, je ne reçois pas de message d'erreur.
- Quel que soit le type d'appel au web service, la méthode GetService renvoie toujours null.
Je vois bien que le problème vient de l'attribut HasStream mais je ne vois pas bien comment le solutionner.
Merci d'avance pour votre aide.