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 に答える