public T GetAspect <T>()
     where T : class, INestedAspect, new()
 {
     if (!Aspects.TryGetValue(typeof(T), out var result))
     {
         result = SetAspect(new T());
     }
     return((T)result);
 }