Можно ли получить фактический тип объекта, если он назначен типу интерфейса? - PullRequest
2 голосов
/ 19 декабря 2010

У меня есть интерфейс ITransaction и Class1, Class2 все реализует этот интерфейс. Во время выполнения я назначаю объект Class1 или Class2 для ссылки на ITransaction.

ITransaction itransaction = new Class1(); или

ITransaction itransaction = new Class2();

Можно ли узнать фактический тип, который был назначен для ссылки на транзакцию, может, используя отражение или что-то еще?

Ответы [ 2 ]

6 голосов
/ 19 декабря 2010

Вы можете вызвать GetType() в экземпляре интерфейса, чтобы получить эффективный тип.

(Обратите внимание, что это может не вернуть ожидаемого для COM и удаленных интерфейсов экземпляров MarshalByRefObject, но это другая тема.)

3 голосов
/ 19 декабря 2010

Вы можете написать

if (itransaction is Class2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...