Frage

Ich entwickle eine Web-Service WCF, das ich einen Client verwenden, geschrieben in Java zugreifen möchten. Ich werde die Nachrichten mit Protocol Buffers (mit Marc GRA protobuf-net kodieren zu sein exact).

Ist das möglich zu achive oder muss der Client in .NET als auch geschrieben? Ich weiß, dass mit Protocol Buffers serialisierten Daten binär interopable sind, aber ich weiß nicht, ob WCF spezielle plattformspezifische Meta-Daten auf den codierten Protokoll-Nachrichten erstellt.

ist mir egal, wenn die WCF-Service RESTful ist, SOAP-basierte oder was auch immer andere Formen WCF-Unterstützung, ich möchte nur die eigentliche Nutzlast codiert werden PB verwendet wird. Ist dies möglich, und wenn ja, würde ich ein kurzes Beispiel sehr zu schätzen wissen.

War es hilfreich?

Lösung

Wenn Sie Ihren WCF-Dienst programmieren ein Byte-Array zu nehmen, können Sie stopfen, was du da drin wollen, wie ein protobuf so einfach sein message.Could wie

  [ServiceContract]
    public interface IMessageService{
        [OperationContract(IsOneWay = true)]
        void SendMessage(byte[] msg);
    }

  [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
   public class MessageService: IMessageService{

        public void SendMessage(byte[] msg) {
          //decode the protobuf msg and deal with it.
        }

    }

Konfigurieren des WCF-Endpunkt als SOAP, dann, dass das Sprechen von Java sollte gerade foreward sein. Wether WCF / Soap wäre zu viel des Guten für diese andere Sache ist, iirc protobuf kommt mit einem eigenen Framework für die einfache RPC.

Andere Tipps

Ich habe noch nie protobuf-net aber Interop war der springende Punkt.

verwendet
  

plattformunabhängig - portabel zwischen verschiedenen Programmier Architekturen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top