.net 是否可以编写一个C#代码来触发AppDomain.TypeResolve事件?

.net 是否可以编写一个C#代码来触发AppDomain.TypeResolve事件?,.net,events,appdomain,.net,Events,Appdomain,在我看来,AppDomain.TypeResolve是神秘的。有人能提供触发此事件的示例代码吗 谢谢。代码>类型t=Type.GetType(“Class1”)就可以了 从MSDN: 当公共语言运行库无法确定可创建请求类型的程序集时,会发生TypeResolve事件。如果类型在动态程序集中定义,或者类型未在动态程序集中定义,但运行库不知道该类型在哪个程序集中定义,则会发生这种情况。当Type.::.GetType是使用不符合程序集名称的类型名调用的。“在引发此事件时非常清楚: 当公共语言运行库无

在我看来,AppDomain.TypeResolve是神秘的。有人能提供触发此事件的示例代码吗


谢谢。

代码>类型t=Type.GetType(“Class1”)就可以了

从MSDN: 当公共语言运行库无法确定可创建请求类型的程序集时,会发生TypeResolve事件。如果类型在动态程序集中定义,或者类型未在动态程序集中定义,但运行库不知道该类型在哪个程序集中定义,则会发生这种情况。当Type.::.GetType是使用不符合程序集名称的类型名调用的。“

在引发此事件时非常清楚:

当公共语言运行库无法确定可创建请求类型的程序集时,将发生TypeResolve事件。如果类型在动态程序集中定义,或者类型未在动态程序集中定义,但运行时不知道该类型在哪个程序集中定义,则可能发生这种情况。当使用未使用程序集名称限定的类型名调用Type.GetType时,可能会出现后一种情况

此代码将触发以下事件:

AppDomain.CurrentDomain.TypeResolve += delegate(object sender, ResolveEventArgs e)
{
    Console.WriteLine("Trying to resolve '{0}'", e.Name);
    return null;
};

Type type = Type.GetType("SomeNamespace.SomeTypeWithoutAssemblyQualifier");
当您请求默认情况下无法解析的类型时,该事件将随时触发。通常情况下,这种情况不会发生,因为依赖项始终与可执行文件位于同一位置(默认情况下)或GAC中

然而,很容易强迫它发生。只要做:

Type badType = Type.GetType("IDontExist");

由于该类型不存在,它将调用事件以尝试“查找”该类型。

愚蠢的我,在我的测试中,我使用了完全限定的类型名。真蠢,呵呵。我总是犯这样的错误。