-1

エラーが表示されます:

「割り当てられていないローカル変数 'PostData' の使用」

メソッド内で以下のステートメントをコンパイルするとき。私の意図は、XML SOAP ヘッダーを含む「文字列」値を取得し、それをXMLDictionaryWriterオブジェクトに変換することです。以下の私のコードを参照してください:

Stream PostData;
byte[] buffer = Encoding.ASCII.GetBytes(x509.CreateX509SoapEnvelope());
PostData.Write(buffer, 0, buffer.Length); // error here
XmlDictionaryWriter xmlwriter = XmlDictionaryWriter.CreateTextWriter(PostData, Encoding.ASCII);
request.Headers.WriteHeaderContents(0,xmlwriter);

参考までに、の出力x509.CreateX509SoapEnvelope()は文字列であり、その部分をテストしたところ動作します。上記のコードにマークを付けて、エラーが発生した場所を示しました。エラーに関する支援とその修正方法が必要ですか?

4

3 に答える 3

5

に値を割り当てたことはありませんPostData。したがって、そのデフォルト値はnullであり、コンパイラはこれが悪いことであるとあなたに伝えるのに十分賢いです (コードをそのまま許可した場合、 runtime が得られますNullReferenceException)。Stream(Stream抽象的であるため、具体的なインスタンスが必要です)であるクラスのインスタンスをインスタンス化し、それを に割り当てる必要がありますPostData

于 2011-08-21T22:00:47.617 に答える
3

を宣言しPostDataましたが、初期化していません。

次のものが必要です。

Stream PostData = new StreamWriter(filename);

最低限。さまざまな初期化子の詳細については、 MSDN のドキュメントを参照してください。

于 2011-08-21T22:03:18.103 に答える
0

私はあなたと同じことを求めていたと思います。インスタンス化するためにファイルを必要としない MemoryStream を使用しました。以下の参照を参照してください。

メモリーストリーム

于 2013-12-01T22:26:18.123 に答える