-
Notifications
You must be signed in to change notification settings - Fork 138
/
InvalidMessageException.cs
48 lines (43 loc) · 1.37 KB
/
InvalidMessageException.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#nullable enable
using System;
using System.Runtime.Serialization;
using Libplanet.Net.Messages;
namespace Libplanet.Net
{
[Serializable]
public class InvalidMessageException : Exception
{
internal InvalidMessageException(
string message,
Message receivedMessage,
Exception innerException
)
: base(message, innerException)
{
ReceivedMessage = receivedMessage;
}
internal InvalidMessageException(string message, Message receivedMessage)
: base(message)
{
ReceivedMessage = receivedMessage;
}
protected InvalidMessageException(
SerializationInfo info,
StreamingContext context
)
: base(info, context)
{
ReceivedMessage = info.GetValue(nameof(ReceivedMessage), typeof(Message)) is Message m
? m
: throw new SerializationException(
$"{nameof(ReceivedMessage)} is expected to be a non-null {nameof(Message)}.");
}
internal Message ReceivedMessage { get; }
public override void GetObjectData(
SerializationInfo info, StreamingContext context)
{
base.GetObjectData(info, context);
info.AddValue(nameof(ReceivedMessage), ReceivedMessage);
}
}
}