Ok, this may sound odd, but I need to test if an object passed to me is of type ModelItem<T> where I don't care what T actually is. In other words, if it's a ModelItem<int>, ModelItem<string> or ModelItem<Foo>, then I need to return true.
Note: If I were the owner of ModelItem<T>, I would think to just define an interface of type IModelItem and assign it as part of the ModelItem<T> definition, but I don't have access to the source.