Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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# Activator.CreateInstance上的TargetInvocationException异常_C#_Activator_Createinstance_Targetinvocationexception - Fatal编程技术网

C# Activator.CreateInstance上的TargetInvocationException异常

C# Activator.CreateInstance上的TargetInvocationException异常,c#,activator,createinstance,targetinvocationexception,C#,Activator,Createinstance,Targetinvocationexception,我在使用反射实例化DLL文件中定义的类时遇到一些问题。即使代码看起来很好,我还是在Activator.CreateInstance上收到了TargetInvocationException。代码如下(目前只有一个DLL可用): 我设法防止该问题发生的唯一方法是在编译之前将加载的.dll添加到引用中。问题是,通常在编译时,没有办法知道需要加载哪些库。我错过了什么 整个解决方案(尽管目前有点混乱)可在此处下载: 任何帮助都将不胜感激!提前谢谢。您必须将所有依赖项复制到文件夹扩展中。在您的情况下,缺少

我在使用反射实例化DLL文件中定义的类时遇到一些问题。即使代码看起来很好,我还是在Activator.CreateInstance上收到了TargetInvocationException。代码如下(目前只有一个DLL可用):

我设法防止该问题发生的唯一方法是在编译之前将加载的.dll添加到引用中。问题是,通常在编译时,没有办法知道需要加载哪些库。我错过了什么

整个解决方案(尽管目前有点混乱)可在此处下载:


任何帮助都将不胜感激!提前谢谢。

您必须将所有依赖项复制到文件夹扩展中。在您的情况下,缺少BubbleSort.dll所依赖的SortingFunctions.dll。它反映在内部异常中。

那么,异常包含哪些信息?它可能告诉你一些事情。分析所有这些。我在上面遇到了相同的问题,在查看内部异常后,我发现我试图将一个对象添加到空列表中。啊,是的,问题似乎是由主目录中缺少SortingFunctions.dll引起的。谢谢!我的一个文件被设置为“不复制”,改为“总是复制”工作
public Comparator() 
{
    string[] filePaths = Directory.GetFiles(@".\Extensions");
    for (int i = 0; i < filePaths.Length; ++i)
    {
        var asm = Assembly.LoadFrom(Path.GetFullPath(filePaths[i]));

        if (asm != null)
        {
            foreach (Type currType in asm.ExportedTypes)
            {
                if (!currType.IsAbstract && currType.IsPublic && typeof(SorterBase).IsAssignableFrom(currType))
                {
                    Debug.WriteLine(currType); //outputs: BubbleSort.Sorter
                    var instance = Activator.CreateInstance(currType); //TargetInvocationException
                }
            }
        }
    }
}
using SortingLibrary;
using SortingFunctions;
namespace BubbleSort
{
    public class Sorter : SorterBase //SorterBase is an abstract class defined in SortingLibrary
    {
        public Sorter()
        {
            SetFunction(Sorting.BubbleSort);
            AlgorithmName = @"Bubble Sort";
        }
    }
}