1
這是Docusign Rest api。當我在EnvelopeDefinition上調用ToJson()時,它會返回正確的信息,但我希望它不會序列化base64陣列,因爲我將它寫入日誌文件。我嘗試過使用[JsonIgnore]指令,但是這完全阻止了數組被序列化。我是否需要重寫此類上的Serialize方法或僅創建另一個方法,如ToJsonForLogging(),而不是序列化該數組?從JSon序列化中排除數據成員
這是Docusign Rest api。當我在EnvelopeDefinition上調用ToJson()時,它會返回正確的信息,但我希望它不會序列化base64陣列,因爲我將它寫入日誌文件。我嘗試過使用[JsonIgnore]指令,但是這完全阻止了數組被序列化。我是否需要重寫此類上的Serialize方法或僅創建另一個方法,如ToJsonForLogging(),而不是序列化該數組?從JSon序列化中排除數據成員
我已經創建了一個適用於您的擴展方法。你可以在你的代碼如下
string json = envelopeDefinition.ToJsonLog(logDocumentBase64:false)
我複製DocumentBase64到一個臨時目錄,然後使用.ToJson()函數來記錄沒有documentBase64屬性調用此擴展方法。
public static class EnvelopeDefinitionExtensions
{
public static string ToJsonLog(this EnvelopeDefinition envDefinition, bool logDocumentBase64 = true)
{
if (logDocumentBase64) return envDefinition.ToJson();
var tempDocumentBase64List = new List<string>();
foreach(var doc in envDefinition.Documents)
{
tempDocumentBase64List.Add(doc.DocumentBase64);
doc.DocumentBase64 = null;
}
string json = envDefinition.ToJson();
int i =0;
foreach(var doc in envDefinition.Documents)
{
doc.DocumentBase64 = tempDocumentBase64List[i];
i++;
}
return json;
}
}
像冠軍一樣工作。非常感謝。 –
糟糕。忘了這麼做。我非常感謝你的幫助。 –
有沒有辦法做到這一點,而不用處理你將發出的信封定義?我們曾經有時間替換文檔bytearray不起作用,佔位符是發送到Docusign的內容。我想信封定義可以克隆到另一個信封定義並修改克隆。 –