Class Status (2.15.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() 

Calculates the size of this message in Protocol Buffer wire format, in bytes.

Returns
Type
Description
int

The number of bytes required to write this message to a coded output stream.

Clone()

 public Status Clone() 

Creates a deep clone of this object.

Returns
Type
Description

A deep clone of this object.

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) 

Merges the data from the specified coded input stream with the current message.

Parameter
Name
Description
Remarks

See the user guide for precise merge semantics.

MergeFrom(Status)

 public void MergeFrom(Status other) 

Merges the given message into this one.

Parameter
Name
Description
other
Remarks

See the user guide for precise merge semantics.

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) 

Writes the data to the given coded output stream.

Parameter
Name
Description
output
CodedOutputStream

Coded output stream to write the data to. Must not be null.

Design a Mobile Site
View Site in Mobile | Classic
Share by: