2010-04-09 66 views
4

我正在为一些专用的自定义域逻辑编写自定义反射库,并且该库将使用XML配置文件,这些文件将在运行时动态解析System.Type对象。但是,在编写XML配置文件时,编写这些类型有点痛苦,因为它们需要是Type.GetType()的完全限定的程序集名称来解决它们。有没有办法找出Visual Studio中的对象的AssemblyQualifiedName,而不诉诸编写程序打印出来的文件或标准出来或类似的东西?在Visual Studio中获取组件的合格名称

+0

我在这里发现了一个很好的答案:http://stackoverflow.com/a/17396630/3899583 – vojta 2016-12-15 13:46:28

回答

3

我要改变我的意见,以一个合适的回答,因为有一个快速的打法是什么,我建议你想要做什么了。

下载反射器的免费版本from here,解压缩并运行它。将编译后的程序集版本拖放到它上面,并在对话框底部的信息部分中名称标记的旁边将为其完全限定名称,随时可供您从中复制和粘贴。

请注意,所有你需要的信息也availableby在编译的文件上右键单击,选择属性,然后去详细标签,但你不能只是复制/粘贴那里。

+0

不是技术上的AssemblyQualifiedName,但足够接近。非常感谢您的帮助。 – 2010-04-09 23:30:37

0

我不确定我是否理解这个问题。你想以编程方式获得你的类型的全名?如果是这样,您可以始终使用typeof(YourType).FullNametypeof(YourType).AssemblyQualifiedName

我能想到的是用一些自定义属性标记所有需要的类型,以便在组件中轻松找到它们以提取它们的名称,我不认为如果不通过每种类型需要提取它的名字。

+0

不,我不想让他们以编程方式,我已经知道如何做到这一点。我想知道是否有办法在visual studio中找到一个类的AssemblyQualifiedName,而不使用代码打印出我的类的名称,因为我将不得不在配置文件中使用Type.AssemblyQualifiedName – 2010-04-09 22:09:33

4

如果我处于您的情况,我将弹出立即窗口(调试 - > Windows - >立即)并使用typeof(TypeFullName).AssemblyQualifiedName

您需要使用完整名称空间来限定类型才能执行此操作,这也会自动运行解决方案启动项目的副作用。暂时将类库设置为解决方案启动项目可以缓解此副作用。

例子:

typeof(System.Windows.Forms.Button).AssemblyQualifiedName 
+0

感谢您的回答 – 2012-09-07 22:17:45