C#Type.GetType(字符串类型名)返回null

C#Type.GetType(字符串类型名)返回null,c#,.net-assembly,appdomain,C#,.net Assembly,Appdomain,我知道这看起来像是一个重复的问题,但我还没有发现任何指向这种特定情况的问题。 我使用AssemblyQualifiedName,我知道程序集已加载到AppDomain中 此代码返回空值: var type=type.GetType(TypeName); 此代码返回以下类型: var assemblies=AppDomain.CurrentDomain.GetAssemblies(); var name=TypeName.Split(新[]{',},2).AsQueryable(); var t

我知道这看起来像是一个重复的问题,但我还没有发现任何指向这种特定情况的问题。 我使用AssemblyQualifiedName,我知道程序集已加载到AppDomain中

此代码返回空值:

var type=type.GetType(TypeName);
此代码返回以下类型:

var assemblies=AppDomain.CurrentDomain.GetAssemblies();
var name=TypeName.Split(新[]{',},2).AsQueryable();
var type=assemblies.Single(x=>x.FullName==names.Last().Trim()).GetType(names.First());
typeName
变量是AssemblyQualifiedName 该值为“testTransform,transform,Version=0.0.0,Culture=neutral,PublicKeyToken=null”

2020年2月6日编辑 我发现:哪些国家:

如果程序集不是强名称签名的,则仅使用文件名进行加载

这一条是:哪一条规定:

无法使用xsltc.exe生成已签名的程序集

可能是那种类型。GetType()不适用于未签名的程序集

2020年2月12日编辑 我在集会上签名,行为没有改变

2020年2月13日编辑 整个代码太大,无法容纳。上下文是,有一个父软件可以配置为运行第三方程序集。它创建一个新的AppDoAdmin来运行程序集。我的代码是在该应用程序中运行的第三方程序集。TypeName仅定义为从配置窗口接受值的参数:

[DisplayName(“类型名称”),
类别(“转换”),
说明(“XSL转换类型的限定名称”),
ListBoxItemProvider(typeof(TypeListGenerator)、nameof(RootDirectory)、nameof(AssemblyFile)),
编辑器(typeof(ListBoxEditor),typeof(UITypeEditor))]
公共字符串类型名{get;set;}

根据此处发布的答案:,您还需要提供程序集名称。你试过这个了吗?是的,这就是我要传递给GetTypehi的内容,请写出声明TypeName的完整代码。