我正在实现具有以下定义
的界面public interface Math
{
int Calculate(int a, int b)
}
public class MathImpl : Math
{
public int Calculate(int a, int b){ return a + b; }
}
这是代码是程序集的一部分,正确构建
当我调用Assembly.GetExportedTypes()
时,它抛出异常方法没有实现。
Assembly assembly = Assembly.LoadFrom(filePath);
assembly.GetExportedTypes();
如果我将方法实现更改为
int Math.Calculate( int a, int b){ return a + b; }
工作正常。
在第一种情况下它会抛出错误的原因是什么?
答案 0 :(得分:0)
答案 1 :(得分:0)
接口的默认访问说明符为Public,但您的类默认为internal。所以当你说
时int Math.Calculate( int a, int b){ return a + b; }
它正在工作,因为你有公共接口。如果你为你的内部课程实现它,它将无法工作。
答案 2 :(得分:0)
我无法确切地说出发生了什么,但我很确定问题与load contexts有关。