C# 如何从TypeName和程序集名称创建AssemblyQualifiedName?

C# 如何从TypeName和程序集名称创建AssemblyQualifiedName?,c#,.net,vb.net,reflection,C#,.net,Vb.net,Reflection,我有一些类的名称是按照约定创建的。我需要在需要时检索其中一个。要检索一个类,我需要它的AssemblyQualifiedName。目前我正在使用 Return Type.GetType("MyAssemblyName." + ClassName, false) 我不喜欢硬编码的名称,所以我正在考虑使用程序集的名称System.Reflection.Assembly.GetCallingAssembly.GetName.name,但它可能还不够精确,我需要“{MyAssemblyName.+Cl

我有一些类的名称是按照约定创建的。我需要在需要时检索其中一个。要检索一个类,我需要它的
AssemblyQualifiedName
。目前我正在使用

Return Type.GetType("MyAssemblyName." + ClassName, false)
我不喜欢硬编码的名称,所以我正在考虑使用程序集的名称
System.Reflection.Assembly.GetCallingAssembly.GetName.name
,但它可能还不够精确,我需要
“{MyAssemblyName.+ClassName+”,Version=1.0.5077.23831,Culture=neutral,PublicKeyToken=null}”

我可以将类名与程序集的限定名组合起来,而无需对其进行解析吗?


注:问题被标记为VB和C,因为提供和需要的代码非常简单,可以相互理解。

我很困惑,它不是简单的类型(MyClass)。AssemblyQualifiedName?@dudeNumber4:我知道类的名称是字符串,例如“Foo_m”。比较
typeof(MyClass)
typeof(“MyClass”)
。typeof要求在编译时知道类名。您的基本问题是“如何获取我没有的信息?”您不能。尤其是允许[AssemblyVersion]自动递增是一个主要障碍。鸡蛋先于鸡,您确实需要首先使用程序集。@HansPassant:类应该出现在调用程序集中。所以我需要“通过给定程序集限定名称”。我知道程序集,但我需要将其与类名组合以获得限定的类名(来自限定的程序集名和类名)。然后只需使用assembly.GetCallingAssembly().GetType()并传递类型名即可。