我正在为一些专门的自定义域逻辑编写一个自定义的反射库,该库将使用XML配置文件,这些文件将在运行时动态解析System.Type对象。但是,在编写XML配置文件时,编写类型会有点麻烦,因为它们需要是Type.GetType()的完全限定程序集名称才能解决它们。有没有办法在Visual Studio中找到对象的AssemblyQualifiedName而无需编写程序将它们打印到文件或标准或类似的东西?
答案 0 :(得分:5)
如果我处于你的情况,我只需弹出立即窗口(Debug-> Windows-> Immediate)并使用typeof(TypeFullName).AssemblyQualifiedName
。
您需要使用完整命名空间限定类型才能执行此操作,这也会产生自动运行解决方案启动项目的副作用。通过临时将类库设置为解决方案启动项目,可以减轻这种副作用。
示例:
typeof(System.Windows.Forms.Button).AssemblyQualifiedName
答案 1 :(得分:3)
我要将我的评论改为正确的答案,因为在快速播放之后,我的建议完全符合您的要求。
下载Reflector from here的免费版本,解压缩并运行它。将程序集的编译版本拖放到它上面,并在对话框底部的info部分的 Name 标记旁边显示其完全限定名称,随时可以复制和从那里粘贴。
请注意,右键单击已编译的文件,选择属性,然后转到详细信息选项卡,即使您无法使用,也可以使用所需的所有信息只需从那里复制/粘贴。
答案 2 :(得分:0)
我不确定我是否理解了这个问题。您想以编程方式获取类型的全名吗?如果是这样,您可以随时使用typeof(YourType).FullName
或typeof(YourType).AssemblyQualifiedName
。
我能想到的是用一些自定义属性标记你需要的所有类型,以便在程序集中轻松找到它们以提取它们的名称,我认为你不能找到一些方法而不需要通过你需要的每种类型提取其名称。