C# 在Visual Studio中获取类的程序集限定名

C# 在Visual Studio中获取类的程序集限定名,c#,reflection,assemblies,types,C#,Reflection,Assemblies,Types,我正在为一些专门的自定义域逻辑编写一个自定义反射库,该库将使用XML配置文件,这些文件将在运行时动态解析System.Type对象。但是,在编写XML配置文件时,编写类型有点麻烦,因为它们需要是Type.GetType()的完全限定程序集名才能解析它们。有没有一种方法可以在Visual Studio中找到对象的AssemblyQualifiedName,而无需编写程序将其打印到文件或标准输出之类的文件?我不确定是否理解了这个问题。您想以编程方式获取类型的全名吗?如果是这样,您可以始终使用type

我正在为一些专门的自定义域逻辑编写一个自定义反射库,该库将使用XML配置文件,这些文件将在运行时动态解析System.Type对象。但是,在编写XML配置文件时,编写类型有点麻烦,因为它们需要是Type.GetType()的完全限定程序集名才能解析它们。有没有一种方法可以在Visual Studio中找到对象的AssemblyQualifiedName,而无需编写程序将其打印到文件或标准输出之类的文件?

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


我能想到的是用一些自定义的atribute标记你需要的所有类型,以便在程序集中轻松找到它们来提取它们的名称,我不认为你可以找到一些方法,而不必检查你需要提取名称的每个类型。

如果我是你,我只会弹出即时窗口(调试->窗口->即时)并使用
typeof(TypeFullName).AssemblyQualifiedName

为了做到这一点,您需要使用完整的名称空间限定该类型,这还具有自动运行解决方案启动项目的副作用。通过临时将类库设置为解决方案启动项目,可以减轻这种副作用

例如:

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

我要把我的评论换成一个恰当的答案,因为在快速播放之后,我的建议正是你想要的

下载Reflector的免费版本,解压缩并运行它。将程序集的编译版本拖放到该程序集上,对话框底部“信息”部分的“名称”标记旁边将是它的完全限定名称,您可以从该名称复制和粘贴


请注意,您需要的所有信息也可以通过右键单击编译的文件,选择“属性”,然后转到“详细信息”选项卡,尽管您不能从那里复制/粘贴。

不,我不想以编程方式获取它们,我已经知道如何做了。我想知道是否有一种方法可以在visual studio中找到类的AssemblyQualifiedName,而不必使用代码打印出类的名称,因为我必须在配置文件中使用Type.AssemblyQualifiedName从技术上讲不是AssemblyQualifiedName,而是足够接近。非常感谢您的帮助。我在这里找到了一个很好的答案: