public interface ICustomDiagnosticMessage : IMessage
A message type that has a custom string format for diagnostic purposes.
Calling ToString() on a generated message type normally
returns the JSON representation. If a message type implements this interface,
then the ToDiagnosticString() method will be called instead of the regular
JSON formatting code, but only when
ToString() is called either on the message itself
or on another message which contains it. This does not affect the normal JSON formatting of
For example, if you create a proto message representing a GUID, the internal
representation may be a
bytes field or four
fixed32 fields. However, when debugging
it may be more convenient to see a result in the same format as Guid provides.
This interface extends IMessage to avoid it accidentally being implemented on types other than messages, where it would not be used by anything in the framework.
Returns a string representation of this object, for diagnostic purposes.
A string representation of this object, for diagnostic purposes.
This method is called when a message is formatted as part of a ToString() call. It does not affect the JSON representation used by JsonFormatter other than in calls to ToDiagnosticString(IMessage). While it is recommended that the result is valid JSON, this is never assumed by the Protobuf library.