C# 访问公共静态方法时出错
我的应用程序中引用了一个.Net dll。 在我的C#代码中访问一个名为XYZ的方法时,我得到一个错误: 方法“MyClass.ABC()”尝试访问方法“OtherClass.XYZ()”失败 当我在VS.Net中看到元数据时,我看到它仅将此方法XYZ显示为公共静态。 请问我在这里会错过什么C# 访问公共静态方法时出错,c#,.net,C#,.net,我的应用程序中引用了一个.Net dll。 在我的C#代码中访问一个名为XYZ的方法时,我得到一个错误: 方法“MyClass.ABC()”尝试访问方法“OtherClass.XYZ()”失败 当我在VS.Net中看到元数据时,我看到它仅将此方法XYZ显示为公共静态。 请问我在这里会错过什么 谢谢。您需要使用类名来调用它。比如说 public static class MyClass { public static void MyMethod() { // Do something
谢谢。您需要使用类名来调用它。比如说
public static class MyClass
{
public static void MyMethod()
{ // Do something
}
}
打电话时,您需要使用
MyClass.MyMethod();
我也有同样的问题——我的情况就是这样:
内部静态void Foo()代码>
[程序集:InternalsVisibleTo(“unittests”)]
这使得代码通过了编译时检查,但在运行时抛出了MethodAccessException。在我的例子中,原因是从程序集调用了一个内部方法,而该程序集不应该对其可见。这是一种我不喜欢调试的安全异常。祝你好运。你能给我们展示一下对公共静态方法的调用吗?你能展示一下你用来访问该方法的代码吗?如果可能的话,还有你正在调用的方法吗?请证明一些代码以供检查。还要检查是否正在使用命名空间。还要检查是否仅使用类名调用函数。请通过下面的链接,这样您将更好地了解静态方法>抱歉,在调用方法时没有提到我使用类名。已更新我的问题。谢谢。换句话说,您需要使用类型访问静态方法,并使用对象实例访问动态方法。请尝试检查访问修饰符。您确定您的类和方法在范围内吗?