WebApi和WinForms和串行端口与错误"An object reference is required for the non-static field, method, or propert



我在 Win Forms 中使用 webapi 类和应用程序有问题。Win 窗体应用程序具有访问串行端口的类。此类已在主应用程序中初始化。

发生的错误是:非静态字段、方法或属性需要对象引用

步骤如下:webapi 接收命令并将数据发送到 MainForm。MainForm 应该发送到串行端口,但我没有得到。报告的错误发生。

资料来源如下:

WebApi 事件:

[HttpPost]
public void ExecutarComando([FromBody]string comando)        
{
    TCCWindows.FormPrincipal.EnviarComandoWeb(comando);
}

程序:

public partial class FormPrincipal : Form
{       
    SerialPort spSimulador = new SerialPort();        
    PortaSerial spSistema = new PortaSerial();
    HttpSelfHostServer server;
    private Bitmap image = null;
    private Bitmap image2 = null;
    private float angle = 0.0f;
    private float angle2 = 0.0f;
    public static string LatitudeGD, LongitudeGD;
    ....
    ....
    public static void EnviarComandoWeb(string comando)
    {
        spSistema.EnviarComandoWeb(comando);
    }
}

问题在:

public static void EnviarComandoWeb(string comando)
{
    spSistema.EnviarComandoWeb(comando);
}

问题是您访问非静态PortaSerial spSistema 通过静态成员EnviarComandoWeb

PortaSerial spSistema = new PortaSerial();

尝试执行此操作时未运行

spSistema.EnviarComandoWeb(comando);

你就是做不到。一定不能这样做。换句话说,您不应该期望在访问静态方法时,将初始化整个类。只能使用静态方法中的静态成员。

相关内容

最新更新