Class Status (2.17.0)

 public sealed class Status : IMessage<Status>, IEquatable<Status>, IDeepCloneable<Status>, IBufferMessage, IMessage 

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC . Each Status message contains three pieces of data: error code, error message, and error details.

You can find out more about this error model and how to work with it in the API Design Guide .

Inheritance

object > Status

Namespace

Google.Rpc

Assembly

Google.Api.CommonProtos.dll

Constructors

Status()

 public Status() 

Status(Status)

 public Status(Status other) 
Parameter
Name
Description
other

Fields

CodeFieldNumber

  public 
  
 const 
  
 int 
  
 CodeFieldNumber 
  
 = 
  
 1 
 

Field number for the "code" field.

Field Value
Type
Description
int

DetailsFieldNumber

  public 
  
 const 
  
 int 
  
 DetailsFieldNumber 
  
 = 
  
 3 
 

Field number for the "details" field.

Field Value
Type
Description
int

MessageFieldNumber

  public 
  
 const 
  
 int 
  
 MessageFieldNumber 
  
 = 
  
 2 
 

Field number for the "message" field.

Field Value
Type
Description
int

Properties

Code

 public int Code { get; set; } 

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

Property Value
Type
Description
int

Descriptor

 public static MessageDescriptor Descriptor { get; } 
Property Value
Type
Description

Details

 public RepeatedField<Any> Details { get; } 

A list of messages that carry the error details. There is a common set of message types for APIs to use.

Property Value
Type
Description

Message

 public string Message { get; set; } 

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

Property Value
Type
Description

Parser

 public static MessageParser<Status> Parser { get; } 
Property Value
Type
Description

Methods

CalculateSize()

 public int CalculateSize() 
Returns
Type
Description
int

Clone()

 public Status Clone() 
Returns
Type
Description

Equals(Status)

 public bool Equals(Status other) 
Parameter
Name
Description
other
Returns
Type
Description

Equals(object)

 public override bool Equals(object other) 
Parameter
Name
Description
other
Returns
Type
Description
Overrides

GetDetail<T>()

 public T GetDetail<T>() where T : class, IMessage<T>, new() 

Retrieves the error details of type T from the Status message.

Returns
Type
Description
T

The first error details of type T found, or null if not present.

Type Parameter
Name
Description
T

The message type to decode from within the error details.

Remarks

GetHashCode()

 public override int GetHashCode() 
Returns
Type
Description
int
Overrides

MergeFrom(CodedInputStream)

 public void MergeFrom(CodedInputStream input) 
Parameter
Name
Description

MergeFrom(Status)

 public void MergeFrom(Status other) 
Parameter
Name
Description
other

ToString()

 public override string ToString() 
Returns
Type
Description
Overrides

UnpackDetailMessages()

 public IEnumerable<IMessage> UnpackDetailMessages() 

Iterate over all the messages in the Details

Returns
Type
Description
Remarks

Iterate over the messages in the Details that are messages in the standard set of error types defined in the richer error model. Any other messages found in the Details are ignored and not returned.

 foreach (var msg in status.UnpackDetailMessages())
 {
     switch (msg)
     {
         case ErrorInfo errorInfo:
             // Handle errorInfo ...
             break;

         // Other cases ...
     }
 } 

UnpackDetailMessages(TypeRegistry)

  public 
  
 IEnumerable<IMessage> 
  
 UnpackDetailMessages 
 ( 
 TypeRegistry 
  
 registry 
 ) 
 

Iterate over all the messages in the Details that match types in the given TypeRegistry

Parameter
Name
Description
registry
TypeRegistry

The type registry to use to unpack detail messages.

Returns
Type
Description

A (possibly-empty) sequence of detail messages.

Remarks

Iterate over the messages in the Details that are messages in the given TypeRegistry . Any other messages found in the Details are ignored and not returned. This allows iterating over custom messages if you are not using the standard set of error types defined in the rich error model.

 TypeRegistry myTypes = TypeRegistry.FromMessages(FooMessage.Descriptor, BarMessage.Descriptor);

 foreach (var msg in status.UnpackDetailMessages(myTypes))
 {
     switch (msg)
     {
         case FooMessage foo:
             // Handle foo ...
              break;

         // Other cases ...
     }
 } 

WriteTo(CodedOutputStream)

 public void WriteTo(CodedOutputStream output) 
Parameter
Name
Description
Design a Mobile Site
View Site in Mobile | Classic
Share by: