以下の C# の iTextSharp のコードでは、フィールド値に null 値を使用できますか?つまり、2 番目のパラメーターを null にすることはできますか? このコードでさまざまなアクロフィールドの値を設定しています。この方法に関する適切なドキュメントが見つかりませんでした。
foreach (var kvp in fieldsValuesCollection)
{
acroFields.SetField(kvp.Key, kvp.Value);
}
更新 1:
私はついに答えを見つけました。それは、「SetField」メソッドの 2 番目のパラメーターを null にすることはできません (null 以外の文字列にする必要があります)。この URL からダウンロードしたいくつかのサンプル コードを実行しました: http://www.4guysfromrolla.com/articles/030211-1.aspxそして、それを自分のマシンでローカルに実行したところ、以下に示す例外が発生しました。ダウンロードしたコードに加えた唯一の変更は、すべてのテキスト型 acrofields を非 null 文字列ではなく null に設定することで、エラーがスローされました。
そのため、開発者は acrofield 値を設定する際に注意する必要があります。そうしないと、iTextSharp の API ドキュメントのどこにもこの事実について言及されていないため、見つけにくいバグが発生する可能性があります。

テストに使用したコードは次のとおりです。
foreach (var fieldName in formFieldMap.Keys)
{
if (formFields.GetFieldType(fieldName) == 4)
{
formFields.SetField(fieldName, null);
}
else
{
formFields.SetField(fieldName, formFieldMap[fieldName]);
}
}