【发布时间】:2012-10-17 11:49:48
【问题描述】:
鉴于我有一个类型“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 时可以这样做。
解决方案本身不应该那么复杂,它只是在第一个逗号之前拆分字符串。但是我想知道是否有办法将完全限定名称作为对象表示,所以我不必这样做,它有助于定位正确的程序集,而不必遍历整个目录。
【问题讨论】:
标签: c# .net reflection