假设我有一个类型为“Wibble.Wobble”的东西存在于程序集“Foo.Bar”中。
并且该程序集没有加载到主应用程序的加载上下文中。
是否存在一种现有的公共机制,可以将以下字符串解析为其后续部分:
"Wibble.Wobble, Foo.Bar, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xyz"
询问的原因是我需要在运行时加载各种类型,其中一些可能在当前加载上下文中。其他类型可能需要从外部程序集中加载。
我知道如何从当前加载上下文中加载类型
Type.GetType("typename")
,我知道如何加载程序集并从中获取类型 Assembly.LoadFile("xyz").GetType("abc")
。但问题在于,如果您尝试从程序集中加载类型,则它不应该是一个完全限定名称,而使用Type.GetType
时可以这样做。解决方案本身不应该太复杂,只需在第一个逗号之前拆分字符串即可。然而,我想知道是否有一种方法可以将完全限定名称作为对象表示获取,这样我就不必这样做,并且可以帮助定位正确的程序集,而无需遍历整个目录。