给定的程序集名称无效 Type.GetType() 无效
The given assembly name was invalid Type.GetType() not working
Unhandled Exception: System.IO.FileLoadException: The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)
我在一个由两个 classes,Program.cs 和 [=36 组成的简单程序中收到 C# 的异常=]。我想在 Program.cs 中使用静态 Type.GetType
方法将 AnotherClass
作为 class 作为字符串给出复杂的程序。当我使用下面的代码时
class Program
{
static void Main(string[] args)
{
Assembly a = Assembly.GetExecutingAssembly();
//Console.WriteLine(a.FullName);
Type t = Type.GetType($"SmallTestingSimulator.{a.FullName}.AnotherClass");
Console.WriteLine(t.Name);
}
}
和一个空 class 在不同的文件中但相同的命名空间
class AnotherClass {
}
我收到错误。我如何着手使用 Type.GetType() 用于此项目中的另一个 class?在不使用程序集的情况下,它会给出 NullReferenceException。
相关问题
Type.GetType("namespace.a.b.ClassName") returns null
让我们深入研究发生的反射并找出答案:
Console.WriteLine(a.FullName);
写
ProjectAssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
为了弄清楚我们需要发送什么到 Type.GetType()
,我们可以吐出我们试图获得的类型的 FullName
:
Console.WriteLine(typeof(AnotherClass).FullName);
这应该会输出如下内容:
SmallTestingSimulator.AnotherClass
那么,您获取类型的调用就可以 运行
var t = Type.GetType($"SmallTestingSimulator.AnotherClass");
这在大多数情况下应该有效,除非你用 namespaces/assemblies 做一些愚蠢的事情。
Unhandled Exception: System.IO.FileLoadException: The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)
我在一个由两个 classes,Program.cs 和 [=36 组成的简单程序中收到 C# 的异常=]。我想在 Program.cs 中使用静态 Type.GetType
方法将 AnotherClass
作为 class 作为字符串给出复杂的程序。当我使用下面的代码时
class Program
{
static void Main(string[] args)
{
Assembly a = Assembly.GetExecutingAssembly();
//Console.WriteLine(a.FullName);
Type t = Type.GetType($"SmallTestingSimulator.{a.FullName}.AnotherClass");
Console.WriteLine(t.Name);
}
}
和一个空 class 在不同的文件中但相同的命名空间
class AnotherClass {
}
我收到错误。我如何着手使用 Type.GetType() 用于此项目中的另一个 class?在不使用程序集的情况下,它会给出 NullReferenceException。
相关问题
Type.GetType("namespace.a.b.ClassName") returns null
让我们深入研究发生的反射并找出答案:
Console.WriteLine(a.FullName);
写
ProjectAssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
为了弄清楚我们需要发送什么到 Type.GetType()
,我们可以吐出我们试图获得的类型的 FullName
:
Console.WriteLine(typeof(AnotherClass).FullName);
这应该会输出如下内容:
SmallTestingSimulator.AnotherClass
那么,您获取类型的调用就可以 运行
var t = Type.GetType($"SmallTestingSimulator.AnotherClass");
这在大多数情况下应该有效,除非你用 namespaces/assemblies 做一些愚蠢的事情。