我的应用程序中引用了.Net dll。 在我的C#代码中访问其中一个名为XYZ的方法时,出现错误:
尝试通过方法'MyClass.ABC()'访问方法'OtherClass.XYZ()'失败。
当我在VS.Net中看到元数据时,我看到它将此方法XYZ仅显示为公共静态。 我可以在这里找到什么?
感谢。
答案 0 :(得分:0)
您需要使用类名称来调用它。例如
public static class MyClass
{
public static void MyMethod()
{ // Do something
}
}
打电话时需要使用
MyClass.MyMethod();
答案 1 :(得分:0)
我遇到了同样的问题 - 这就是我的情况:
internal static void Foo();
my.dll定义[assembly:InternalsVisibleTo("unittests")]
我有一个测试程序集unittests.dll,它调用Foo()。
通过一些mumbo jumbo,testsettings文件正在部署一个陈旧版本的a.dll,它没有AttributeInternalsVisibleTo。
这使我处于代码通过编译时检查但在运行时抛出MethodAccessException的位置。在我的情况下,原因是从一个程序集调用的内部方法,它应该是不可见的。这是一种安全例外,我不喜欢调试。祝你好运。