private static bool Calculate()

in rd-net/RdFramework/Base/IRdBindable.cs [132:153]


      private static bool Calculate()
      {
        var type = typeof(T);
        if (type.IsValueType)
          return false;

        var rdBindableType = typeof(IRdBindable);
        if (rdBindableType.IsAssignableFrom(type))
          return true;

        if (type.IsArray && type.GetElementType() is { } elementType && rdBindableType.IsAssignableFrom(elementType))
          return true;

        if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>))
        {
          var argument = type.GetGenericArguments().Single();
          if (rdBindableType.IsAssignableFrom(argument))
            return true;
        }

        return false;
      }