Это работает потому, что парни из IronRuby написали несколько сценариев-обёрток.
Загляните в <your ironruby install path>\lib\ironruby
, и вы увидите System.Windows.Forms.rb
, System.Drawing.rb
и т. Д.
Что происходит, когда вы делаете require 'System.Windows.Forms'
, так это то, что IronRuby находит этот файл rb и запускает его.Код внутри этого файла просто выполняет полное требование со строгим именем.
Если вы хотите загрузить другие библиотеки DLL, для которых они не написали оболочки, у вас есть 3 варианта:
требуется полный путь к dll (например, c:\program files\whatever\whatever\blah.dll
)
требуется строгое имя (это работает, только если оно находится в GAC или где-то еще, IronRuby может найти DLLin)
use load_assembly
- Это наиболее удобно, но IIRC загружает dll в контекст LoadFrom
, а не в контекст Load
.
Если выне понимаю, что это значит, тогда в принципе это нормально в тестировании, но не делайте этого в производстве: -)