Простое решение: просто создайте и добавьте второй универсальный интерфейс к универсальному классу:
public interface IGenericClass
{
}
public class GenericClass<T> : GenericInterface<T>, IGenericClass
{
}
Тогда просто проверьте это так, как вам нравится использовать is
, as
, IsAssignableFrom
и т. д.
if (thing is IGenericClass)
{
// Do work
{
Очевидно, что это возможно только в том случае, если у вас есть возможность редактировать общий класс (который, по-видимому, OP), но он немного более изящный и читабельный, чем использование cryptic extension method.
В SQL Server 2008 перейдите к Инструментам>> Опции. В небольшом окне нажмите "Designer". Снимите флажок, "Предотвращают изменения сохранения, которые требуют..."
=====
, Отредактированный 4-го сентября 2015.
я добавил этот ответ здесь давным-давно описание путем, я решил бы ситуацию, описанную по вопросу выше. С тех пор пользователи на потоках ниже представили несколько проблем при выполнении вещей путем, я рекомендовал в то время. В основном решение, которое я описал, могло быть проблематичным на некоторых сценариях. Я тогда предлагаю, чтобы Вы продолжили читать, чтобы проверить комментарии других пользователей и выбрать лучшее решение для Вас.