0

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

我能在这里做什么?

4

2 回答 2

2

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

于 2013-06-11T11:12:08.207 回答
0

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

lhaservice = new XmlDataService.StufServiceSoapClient();

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

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

于 2013-06-11T11:10:11.510 回答