public static StatefulServiceDescription GetCloneStateful(this StatefulServiceDescription other) { StatefulServiceDescription clone = new StatefulServiceDescription() { HasPersistedState = other.HasPersistedState, MinReplicaSetSize = other.MinReplicaSetSize, TargetReplicaSetSize = other.TargetReplicaSetSize, }; clone.Metrics.AddRangeNullSafe(other.Metrics.Select(m => (m as StatefulServiceLoadMetricDescription).GetClone())); // Copy properties clone.CopyFrom(other); return(clone); }