如何调用非静态webmethod表单客户端静态方法?

时间:2013-06-11 11:07:11

标签: c# asp.net

我正在尝试做一些事情,但我不确定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.

我能在这做什么?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

在任何情况下,您必须首先实例化lhaservice,然后才能在(静态)构造函数中使用它:

lhaservice = new XmlDataService.StufServiceSoapClient();

...但除非您显示所有相关代码,否则我们并不确定您的代码中可能存在的问题。

注意:避免静态类和操作如果它们没有任何意义。在使用Autoupload操作之前,将它们设置为非静态并创建实例。您的代码将变得更加灵活和可测试。所以你可能想重新考虑你的代码。