2017-05-04 5 views
1

Dies ist mit dem Docusign Rest api. Wenn ich ToJson() für eine EnvelopeDefinition aufruft, gibt es die korrekte Information zurück, aber ich möchte, dass es das Base64-Array nicht serialisiert, wenn ich dies in eine Protokolldatei schreibe. Ich habe versucht, die [JsonIgnore] -Direktive zu verwenden, aber das hat verhindert, dass das Array insgesamt serialisiert wurde. Muss ich die Serialize-Methode für diese Klasse überschreiben oder einfach eine andere Methode wie ToJsonForLogging() erstellen und dieses Array nicht serialisieren?Ein Datenelement von JSon-Serialisierung ausschließen

Antwort

2

Ich habe eine Erweiterungsmethode erstellt, die für Sie funktioniert. Sie können in Ihrem Code diese Erweiterung Methode aufrufen als

string json = envelopeDefinition.ToJsonLog(logDocumentBase64:false) 

folgt Ich bin der DocumentBase64 in eine temporäre Liste kopieren und dann .ToJson() Funktion ohne documentBase64 Eigenschaft loggt sein.

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; 
    } 
} 
+0

Arbeitete wie ein Champion. Vielen Dank. –

+0

Hoppla. Habe das vergessen. Ich danke dir so sehr für deine Hilfe. –

+0

Gibt es eine Möglichkeit, dies zu tun, ohne an der Umschlagsdefinition zu arbeiten, die Sie versenden werden? Wir hatten Zeiten, in denen das Ersetzen des Dokument-Bytearrays nicht funktionierte und der Platzhalter das war, was an Docusign gesendet wurde. Ich nehme an, die Umschlagdefinition könnte in eine andere Umschlagdefinition geklont werden und den Klon modifizieren. –

Verwandte Themen