Управляемый код не использует компоновщик. C / C ++ эквивалентом ссылочной сборки является директива #include, которая необходима в C / C ++, чтобы компилятор мог генерировать код для внешнего типа. Точно то же самое в C #, вы не можете использовать внешний тип, если у компилятора нет определения для него. Эталонная сборка поставляет это.
Эквивалент связывания C / C ++ выполняется во время выполнения в управляемой программе. JIT-компилятор загружает сборки по мере необходимости для генерации машинного кода.
Одна вещь, которую вы можете сделать в программе на C #, которую вы не можете сделать в программе на C / C ++, - это использование Reflection. Это позволяет вам вызывать конструктор и вызывать методы типа с именами типов и методов в виде строк. Запустите этот шарик с помощью Assembly.GetType () и методов класса Type. Однако сначала рассмотрим модель плагина с, скажем, пространством имен System.AddIn.