Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何强制ReflectionTypeLoadException?_C#_Reflection - Fatal编程技术网

C# 如何强制ReflectionTypeLoadException?

C# 如何强制ReflectionTypeLoadException?,c#,reflection,C#,Reflection,我正在尝试测试一个程序集扩展方法,它基本上是assembly.GetTypes()的包装器,用于处理由于某种原因无法加载加载的程序集中的一个或多个类型而引发ReflectionTypeLoadException的情况 我已经尝试从静态和实例构造函数显式抛出TypeLoadExceptions,还尝试实例化这个伪类的实例,并在尝试加载类型之前调用DoStuff()方法来打破它,但是Assembly.GetTypes()总是返回类型,而不是抛出ReflectionTypeLoadException

我正在尝试测试一个程序集扩展方法,它基本上是
assembly.GetTypes()
的包装器,用于处理由于某种原因无法加载加载的程序集中的一个或多个类型而引发
ReflectionTypeLoadException
的情况

我已经尝试从静态和实例构造函数显式抛出
TypeLoadExceptions
,还尝试实例化这个伪类的实例,并在尝试加载类型之前调用
DoStuff()
方法来打破它,但是
Assembly.GetTypes()
总是返回类型,而不是抛出
ReflectionTypeLoadException

我怎样才能强迫这种行为

    public class WillNotInitiliase
    {
        public WillNotInitiliase()
        {
            BreakType();
        }

       static WillNotInitiliase()
       {
           BreakType();
       }

       public static  void DoStuff()
       {
       }

       private static void BreakType() => throw new TypeLoadException( "I can never be loaded" );
    }

如果存在类型,则可以获取类型并记住类型!=类型的实例在类型中声明一个
extern
方法,但不为其实现提供任何属性(
DllImport
)。加载此类类型时,会触发
TypeLoadException