次のコードがあります。私の開発環境ではエラーは発生しませんが、本番環境ではエラーが発生します。
...
private Document _pdf;
public Report()
{
_pdf = new Document();
}
public string GenerateReport(string reportType) {
try {
var fs = new FileStream("C:\\myfile.pdf", FileMode.Create);
_pdfWriter = PdfWriter.GetInstance(_pdf, fs);
...
コードを実行すると、_pdfWriter = PdfWriter.GetInstance(_pdf, fs); で次のエラーが発生します。:
Object reference not set to an instance of an object.
at iTextSharp.text.pdf.PdfWriter.GetInstance(Document document, Stream os)
at Report.GenerateReport(String reportType)
なぜこのエラーが発生していると思いますか? ファイルストリームが作成され、_pdf がコンストラクターに設定されます。
アップデート
問題は、_pdf が null であることです。コンストラクターで設定されているように null である理由がわかりません。次のようにして、この問題を回避できます。
if (_pdf == null) {
_pdf = new Document();
}
_pdfWriter = PdfWriter.GetInstance(_pdf, fs);
私はまだ私が間違っていることを知りたいです...