Je dois prendre des WSDL prédéfinis (je ne les contrôle pas) et les exposer sur notre périphérique pour répondre à diverses requêtes SOAP/UPnP.WCF - Generating Action String
De toute façon, j'ai tout cela fonctionne, mais le problème vient parce que j'ai un service qui pourrait être demandé sur un certain nombre de canaux. Je vais vous expliquer:
[System.ServiceModel.ServiceContractAttribute(Namespace="urn:some:namespace:1", ConfigurationName="myInterface")]
public interface myInterface
{
[System.ServiceModel.OperationContractAttribute(Action="urn:some:namespace:1#GetConfiguration", ReplyAction="*")]
[System.ServiceModel.XmlSerializerFormatAttribute()]
[return: System.ServiceModel.MessageParameterAttribute(Name="config")]
MyConfigurationResponse GetConfiguration(MyConfigurationRequest request);
}
Fondamentalement, ce que j'essaie de faire (je me rends compte de cette syntaxe est tout à fait tort, mais je pense que ça va passer le message) est la suivante:
[System.ServiceModel.ServiceContractAttribute(Namespace="urn:some:namespace:{channelNumber}", ConfigurationName="myInterface")]
public interface myInterface
{
[System.ServiceModel.OperationContractAttribute(Action="urn:some:namespace:{channelNumber}#GetConfiguration", ReplyAction="*")]
[System.ServiceModel.XmlSerializerFormatAttribute()]
[return: System.ServiceModel.MessageParameterAttribute(Name="config")]
MyConfigurationResponse GetConfiguration(MyConfigurationRequest request, String channelNumber);
}
I J'aimerais simplement qu'une partie de mon message d'action original soit transmise en tant que paramètre à la méthode que j'implémente. La seule autre façon dont j'ai pensé que je pourrais implémenter ceci, serait de spécifier une autre méthode, nous l'appellerons Dispatcher avec l'Action = "*", puis analyser manuellement l'action reçue en utilisant OperationContext.Current.IncomingMessageHeaders.Action
. Cela semble juste une façon vraiment ombreuse de faire les choses. Je suis certain que le principal obstacle ici est mon inexpérience avec la WCF.
Toute aide que vous pourriez fournir serait grandement appréciée.
Merci,
Merci pour le commentaire Sixto. Comme vous le verrez bientôt, je commence toujours avec ce genre de choses.Je peux peut-être restructurer ma question pour obtenir un type de solution différent. Je n'ai pas vraiment de problème à modifier les fichiers d'interface générés par SVCUtil.exe, mais je pourrais avoir plus de 128 canaux différents venant de divers clients UPnP, et coder tous ceux à la main pour les 3 ou 4 services serait énorme. –