2015-06-08 6 views
13

Я не могу полностью понять, когда использовать тот или иной. Они настолько похожи, что меня это пугает сейчас и сейчас. Когда дело доходит до размышлений, я не знаю, использовать ли простой тип или TypeInfo.В чем разница или взаимосвязь между типом и типом?

. Сама .NET Framework добавляет больше путаницы с такими вещами, как assembly.DefinedTypes. Он извлекает IEnumerable<TypeInfo>, где я предполагал, что он будет IEnumerable<Type>. Кроме того, существует метод typeInfo.AsType(). Что это значит? они взаимозаменяемы?

Кроме того, у них есть методы, которые действительно похожи.

Кажется, что TypeInfo похож на более мощную версию классического Type. Я ошибаюсь?

Спасибо!

ответ

9

От MSDN docs:

TypeInfo объект представляет собой само определение типа, в то время как Тип объекта представляет собой ссылку на определение типа. Получение объекта Объект TypeInfo заставляет сборку, которая содержит этот тип для загрузки. Для сравнения, вы можете манипулировать объектами типа, не обязательно , требуя, чтобы среда выполнения загружала сборку, которую они ссылаются.

Таким образом, Type обеспечивает более мелкое представление данных объекта, то есть предоставление имени типа в виде строки.

Где TypeInfo обеспечивает более богатое представление типа, включая списки элементов, реализованные интерфейсы и базовый тип.

Различия объясняются более подробно here.

+2

Обратите внимание, что согласно https://blogs.msdn.microsoft.com/dotnet/2016/05/27/making-it-easier-to-port-to-net-core/ и http: // www. lifehacker.com.au/2016/05/microsoft-reconsiders-reflection-serialisation-changes-for-net-core/, это предназначалось для ядра .Net, но Microsoft в конце концов отменила его. –

Смежные вопросы