C# 如何从客户端静态方法调用非静态webmethod?

C# 如何从客户端静态方法调用非静态webmethod?,c#,asp.net,C#,Asp.net,我正在尝试做一些事情,但我不确定c#是否允许这样做。以下是我想要做的: 我有一个Web方法,它不是静态的,它是: [WebMethod] public Byte[] recStuff(Byte[] recstuffile) { myfile = Unzip(muStuff); return null; } 这是我的客户: public static XmlDataService.StufServiceSoapClient lh

我正在尝试做一些事情,但我不确定c#是否允许这样做。以下是我想要做的:

我有一个Web方法,它不是静态的,它是:

   [WebMethod]
    public Byte[] recStuff(Byte[] recstuffile)
    {
        myfile = Unzip(muStuff);

        return null;
    }
这是我的客户:

 public static  XmlDataService.StufServiceSoapClient lhaservice = null;
        public static void Autoupload()
        {
            string fileContents = File.ReadAllText(XMLStuffName);
            string text = fileContents;
            byte r2 = Zip(text);
            lhaservice.recStuff(r2);
        }
我得到的错误是:

Object reference not set to an instance of an object.

在这里我能做什么?

在任何情况下,在(静态)构造函数中使用服务之前,必须先实例化服务:

lhaservice = new XmlDataService.StufServiceSoapClient();
…但除非您显示所有相关代码,否则我们无法确定代码中可能存在的问题


注意:如果静态类和操作没有任何意义,请避免它们。在使用
Autoupload
操作之前,将其设置为非静态并创建一个实例。您的代码将变得更加灵活和可测试。因此,您可能需要重新思考您的代码。

这是非常合乎逻辑的。lhaservice=null。初始化它。

什么是
lhaservice
?检查lhaservice!=无效的如果没有初始化它。