/// <summary>
 /// Casts this instance's Status property to a chosen type, regardless of whether it falls into the defined range of enum types.
 /// </summary>
 public TStatus GetStatus <TStatus>()
 {
     if (StatusConverter <TBaseStatus, TStatus> .Convert != null)
     {
         return(StatusConverter <TBaseStatus, TStatus> .Convert(this.Status));
     }
     try {
         return((TStatus)(object)this.Status);
     }
     catch (InvalidCastException) {
         throw new InvalidOperationException($"Couldn't convert value {this.Status} to type {typeof(TStatus).FullName}");
     }
 }
Beispiel #2
0
 protected static TBaseStatus Convert <TStatus>(TStatus status) where TStatus : struct
 {
     return(StatusConverter <TStatus, TBaseStatus> .Convert(status));
 }