Если вы хотите переслать ссылку на класс в другую сборку с помощью перенаправления типов, нужно ли этому классу наследовать от типа?
Нет.
Я предполагаю, что я на самом деле ищу, что ... Что это означает или что обозначено словом "Тип" во фразе и концепции перенаправления типов.
Предположим, у вас есть тип Foo всборки Alpha, и в вашей следующей версии вы понимаете, что Foo действительно должен был быть в сборке Bravo.Вы не можете переместить тип, потому что все ваши клиенты, которые зависят от Foo в Alpha, будут нарушены.
Решение состоит в том, чтобы переместить тип Foo в Bravo, а затем отправить новую версию Alpha, содержащую средство пересылки типов, которое сообщает пользователям Alpha «если вы ищете Foo, он теперь найден в Bravo»,Таким образом, вы не сломите никого, кто зависит от того, что было так, как было раньше.
Я думаю, что мне здесь не хватает, каково определение «Типа» в понятииТип Переадресация.Что квалифицируется как тип?
Следующие вещи являются типом определения :
- неуниверсальные или неструктурированные универсальные классы, структуры, интерфейсы и делегаты
- перечисления
Следующие элементы относятся к типу ссылки (все они относятся к другому типу; ни один из этих определить что-то новое.)
- сконструированные общие классы, структуры, интерфейсы и делегаты
- массивы
- указатели
- обнуляемые значения
(И есть один тип, который не попадает ни в одну из категорий, который является возвращаемым типом «void».)
Из всех этих типов могут быть пересланы только определения типов.Назначение перенаправителя типов состоит в том, чтобы сказать, что «тип, который раньше определялся этой сборкой, теперь определяется этой сборкой», поэтому имеет смысл только перенаправить тип definition .Вы не можете переслать тип MyStruct<int>[]
;это не имеет никакого смысла.Вы можете переслать MyStruct<T>
.
что вы подразумеваете под "неструктурированными универсальными классами? Это означает только определение универсального шаблона, а не универсальный, который был создан с указанным типом?
Исправить.
А можете ли вы указать мне, где вы нашли информацию для "ссылок на типы" и "определений типов"?
Этине являются понятиями из спецификации языка C #, а являются понятиями из базовой системы типов инфраструктуры общего языка.Для подробного технического взгляда на то, как CLI отличается между определенными и ссылочными типами, прочтите спецификацию CLI ECMA 335, в частности, ищитеразделы таблиц метаданных для TypeDef и TypeRef.