2015-03-17 22 views
9

protobuf-net WCF projeme eklemek için this tutorial'u takip ediyorum. Paylaşılan bir DTO kütüphanem var. Hem sunucu hem de İstemci bu DTO sınıflarını kullanır. Tüm Hizmet yöntemlerimi [OperationContract] öznitelikleriyle ilişkilendirdim, ancak DTO sınıflarımda hiçbir [DataContract] öznitelikleri atamadım.Protobuf-net WCF kullanımı hakkında karışık

protobuf-net Nuget paketini ekledim ve yapılandırmayı web.config'a ekledim.

Hizmetimi test etmek için IIS Express kullanıyorum ve şu ana kadar yaptığım şeylerle ilgili olarak iyi olmam gerektiğini düşündüm. Ancak, birkaç aramayı test ettikten sonra, istemcime protobuf-net eklemeyi unuttuğumu fark ettim ve her şey beklendiği gibi çalıştı (yani, serileştirme veya serileştirmeden hata yok).

Protobuf'un programımda hiç kullanılmadığından ve bir şeylerin eksik olduğundan şüpheleniyorum. I'd like to avoid using [DataContract] attributes ama bunları ekleyerek yaşayabiliyordum, eğer protobuf-net çalışıyorsa bunun ne olması gerekiyor.

Başka neler eksik?

+0

içerik müzakere ve farklı bir serileştirme biçimine geri dönüş mü? – Alex

+0

Sadece bir yorum: .NET 3.5 SP1'den itibaren, veri sözleşmesi niteliklerini kullanmanıza gerek yoktur, tüm genel üyeler varsayılan olarak serileştirilir. Ancak, bir öznitelik uygularsanız, bunları her yerde uygulamanız gerekir. –

cevap

0

Bir yıl önce protoBuf'un mükemmel bir seçenek gibi göründüğü aynı sorunla karşılaştım, WCF ile bazı eksiklikler var.

Bu eksikliklerin üstesinden gelmek için açık kaynak kodlu bir proje hazırladım, protobu-net kütüphanesini kullanıyor ve ona işlevsellik ekliyor, böylece artık istemcileri istemcilerle paylaşmanıza gerek kalmıyor. Ancak yine de şu anda DataContract özniteliklerini koymanızı gerektirir. https://github.com/maingi4/ProtoBuf.Wcf

ÖNEMLİ AÇIKLAMA:

Sen denemeye I yaratıcısı ve yukarıdaki projenin sahibiyim.