private PersistentFSMSnapshot GetPersistentFSMSnapshot(object obj)
        {
            Type type = obj.GetType();

            var message = new PersistentFSMSnapshot
            {
                StateIdentifier = (string)type.GetProperty("StateIdentifier")?.GetValue(obj),
                Data            = GetPersistentPayload(type.GetProperty("Data")?.GetValue(obj))
            };
            TimeSpan?timeout = (TimeSpan?)type.GetProperty("Timeout")?.GetValue(obj);

            if (timeout.HasValue)
            {
                message.TimeoutMillis = (long)timeout.Value.TotalMilliseconds;
            }
            return(message);
        }
예제 #2
0
 protected bool Equals(PersistentFSMSnapshot <TD> other)
 {
     return(string.Equals(StateIdentifier, other.StateIdentifier) &&
            EqualityComparer <TD> .Default.Equals(Data, other.Data) &&
            Timeout.Equals(other.Timeout));
 }