2015-03-17 11 views
9

Ho seguito this tutorial per aggiungere protobuf-net al mio progetto WCF. Ho una libreria DTO condivisa. Sia il server che il client utilizzano queste classi DTO. Ho attribuito tutti i miei metodi di servizio agli attributi [OperationContract], ma non ho assegnato alcun attributo [DataContract] alle mie classi DTO.Confuso sull'utilizzo WCF di protobuf-net

Ho aggiunto il pacchetto Nuget protobuf-net e aggiunto la configurazione allo web.config.

Sto usando IIS Express per testare il mio servizio, e ho pensato che avrei dovuto essere ok con quello che avevo fatto finora. Tuttavia, dopo aver provato alcune chiamate, ho notato che ho dimenticato di aggiungere protobuf-net al mio client eppure tutto ha funzionato come previsto (cioè senza errori di serializzazione o deserializzazione).

Ho il sospetto che protobuf non sia utilizzato nel mio programma e che mi manchi qualcosa. I'd like to avoid using [DataContract] attributes ma potrei vivere con l'aggiunta di loro, se questo è ciò che è necessario per ottenere protobuf-net di lavoro.

Cos'altro mi manca?

+0

negoziazione del contenuto e fallback in un diverso formato di serializzazione? – Alex

+0

Solo un commento: da .NET 3.5 SP1, non è necessario utilizzare gli attributi del contratto dati, tutti i membri pubblici sono serializzati per impostazione predefinita. Se, tuttavia, si applica un attributo, è necessario applicarli ovunque. –

risposta

0

Un anno fa ho affrontato lo stesso problema, dove protoBuf sembra essere un'opzione eccellente, con WCF ha alcune carenze.

Ho creato un progetto open source per ovviare a queste carenze, utilizza la libreria protobu-net e aggiunge funzionalità ad esso, in modo tale che non è necessario condividere gli assembly con il client. Tuttavia richiede di nuovo di mettere gli attributi DataContract anche se al momento.

si può dare una prova: https://github.com/maingi4/ProtoBuf.Wcf

NOTA BENE: Sono creatore e proprietario del progetto di cui sopra.