NOT: Bu site kullanımdan kaldırılmıştır. Site 31 Ocak 2023'ten sonra kapatılacak ve trafik https://protobuf.dev adresindeki yeni siteye yönlendirilecek. Bu sırada, yalnızca protobuf.dev'de güncellemeler yapılacak.

Google.Protobuf.WellknownTypes.Tümü

Any, serileştirilmiş mesajın türünü açıklayan bir URL ile birlikte rastgele serileştirilmiş protokol arabelleği mesajı içerir.

Özet

Protobuf kitaplığı, Herhangi bir değeri yardımcı program işlevleri veya Herhangi biri türünde oluşturulan ek yöntemlerle paketleme veya paketten çıkarma desteği sağlar.

1. Örnek: C++ ürününde bir iletiyi paketleyin ve paketinden çıkarın.

Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
  ...
}

2. Örnek: Java'da bir iletiyi paketleyin ve paketinden çıkarın.

Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
  foo = any.unpack(Foo.class);
}

3. Örnek: Python'da bir mesajı paketleyin ve paketinden çıkarın.

foo = Foo(...) Herhangi bir = Herhangi bir().

protobuf kitaplığı tarafından sağlanan paket yöntemleri, varsayılan olarak tür URL'si olarak "type.googleapis.com/full.type.name" kullanılır. Paket açma yöntemleri ise sadece tür URL'sindeki son "/" karakterinden sonra tam nitelikli adı kullanır (örneğin, "foo.bar.com/x/y.z" "y.z").

JSON

Bir Any değerinin JSON gösterimi, türetilmiş, yerleştirilmiş mesajın normal temsilini kullanır ve @type URL'sini içeren ek bir alan içerir. Örnek:

package google.profile;
message Person {
  string first_name = 1;
  string last_name = 2;
}

{
  "@type": "type.googleapis.com/google.profile.Person",
  "firstName": <string>,
  "lastName": <string>
}

Yerleştirilmiş mesaj türü iyi biliniyorsa ve özel bir JSON temsili içeriyorsa bu temsil, @type alanına ek olarak özel JSON barındıran value alanı eklenerek yerleştirilir. Örnek ([google.protobuf.Süre][] mesajı için):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}

Devralma

Devralındığı kaynak: pb::IMessage< Herhangi bir >

İnşaat Ustaları ve Yıkıcılar

Any()
Any(Any other)

Özellikler

Descriptor
pbr::MessageDescriptor
Descriptor
pbr::MessageDescriptor pb::IMessage.
Parser
pb::MessageParser< Any >
TypeUrl
string
İçeriği, serileştirilmiş protokol arabelleği mesajının türünü açıklayan URL/kaynak adı.
Value
pb::ByteString
Yukarıda belirtilen türde geçerli bir serileştirilmiş protokol arabelleği olmalıdır.

Herkese açık özellikler

TypeUrlFieldNumber = 1
const int
"type_url" alanı için alan numarası.
ValueFieldNumber = 2
const int
"Değer" alanı için alan numarası.

Herkese açık işlevler

CalculateSize()
int
Clone()
Any
Equals(object other)
override bool
Equals(Any other)
bool
GetHashCode()
override int
MergeFrom(Any other)
void
MergeFrom(pb::CodedInputStream input)
void
ToString()
override string
Unpack< T >()
T
Bu Tümü mesajının içeriğini hedef mesaj türüne açar. Bu mesaj, bu Herhangi biri mesajındaki tür URL'si ile eşleşmelidir.
WriteTo(pb::CodedOutputStream output)
void

Herkese açık statik işlevler

Pack(IMessage message)
Any
Belirtilen mesajı "type.googleapis.com" türünde bir URL ön eki kullanarak Herhangi biri mesajına gönderir.
Pack(IMessage message, string typeUrlPrefix)
Any
Belirtilen mesajı, belirtilen tür bir URL ön ekini kullanarak Herhangi bir mesaja dönüştürür.

Özellikler

Açıklayıcı

pbr::MessageDescriptor Descriptor

Açıklayıcı

pbr::MessageDescriptor pb::IMessage. Descriptor

Ayrıştırıcı

pb::MessageParser< Any > Parser

Tür URL'si

string TypeUrl

İçeriği, serileştirilmiş protokol arabelleği mesajının türünü açıklayan URL/kaynak adı.

http, https şemasını kullanan veya şema kullanmayan URL'ler için aşağıdaki kısıtlamalar ve yorumlar geçerlidir:

  • Herhangi bir şema sağlanmazsa https olduğu varsayılır.
  • URL yolunun son segmenti, türün tam adını (path/google.protobuf.Duration gibi) temsil etmelidir. Ad standart bir biçimde olmalıdır (ör. baştaki "." kabul edilmez).
  • URL'deki bir HTTP GET'i ikili biçimde [google.protobuf.Type][] değeri sağlamalı veya hata vermelidir.
  • Uygulamaların, URL'ye dayalı olarak arama sonuçlarını önbelleğe almasına veya hiçbir arama yapılmaması için bunların önceden derlenmiş bir ikili program haline getirilmesine izin verilir. Bu nedenle, türlerdeki değişikliklerle ilgili ikili program uyumluluğunun korunması gerekir. (Döküm değişikliklerini yönetmek için sürüm oluşturulmuş tür adlarını kullanın.)

http, https (veya boş şema) dışındaki şemalar uygulamaya özgü semantiklerle kullanılabilir.

Değer

pb::ByteString Value

Yukarıda belirtilen türde geçerli bir serileştirilmiş protokol arabelleği olmalıdır.

Herkese açık özellikler

TypeUrlFieldNumber

const int TypeUrlFieldNumber = 1

"type_url" alanı için alan numarası.

DeğerAlanıNumarası

const int ValueFieldNumber = 2

"Değer" alanı için alan numarası.

Herkese açık işlevler

Hepsi

 Any()

Hepsi

 Any(
  Any other
)

Hesap Boyutu

int CalculateSize()

Klonla

Any Clone()

Şuna eşittir:

override bool Equals(
  object other
)

Şuna eşittir:

bool Equals(
  Any other
)

GetHashCode'u

override int GetHashCode()

Birleştirme Kaynağı

void MergeFrom(
  Any other
)

Birleştirme Kaynağı

void MergeFrom(
  pb::CodedInputStream input
)

Dize

override string ToString()

Paketi Aç< T >

T Unpack< T >()

Bu Tümü mesajının içeriğini hedef mesaj türüne açar. Bu mesaj, bu Herhangi biri mesajındaki tür URL'si ile eşleşmelidir.

Ayrıntılar
Şablon Parametreleri
T
İçeriğin paketi açılacağı mesajın türü.
İstisnalar
InvalidProtocolBufferException
Hedef mesaj türü, bu mesajdaki URL türü ile eşleşmiyor
İadeler
Paketlenmemiş ileti.

Yazma

void WriteTo(
  pb::CodedOutputStream output
)

Herkese açık statik işlevler

Paket

Any Pack(
  IMessage message
)

Belirtilen mesajı "type.googleapis.com" türünde bir URL ön eki kullanarak Herhangi biri mesajına gönderir.

Ayrıntılar
Parametreler
message
Paketlenecek ileti.
İadeler
İçeriği ve mesaj URL'sini içeren herhangi bir mesaj .

Paket

Any Pack(
  IMessage message,
  string typeUrlPrefix
)

Belirtilen mesajı, belirtilen tür bir URL ön ekini kullanarak Herhangi bir mesaja dönüştürür.

Ayrıntılar
Parametreler
message
Paketlenecek ileti.
typeUrlPrefix
URL türünün ön eki.
İadeler
İçeriği ve mesaj URL'sini içeren herhangi bir mesaj.