/// <summary> /// Decodes an object. /// </summary> /// <param name="ContentType">Internet Content Type.</param> /// <param name="Data">Encoded object.</param> /// <param name="Encoding">Any encoding specified. Can be null if no encoding specified.</param> /// <param name="Fields">Any content-type related fields and their corresponding values.</param> /// <param name="BaseUri">Base URI, if any. If not available, value is null.</param> /// <returns>Decoded object.</returns> /// <exception cref="ArgumentException">If the object cannot be decoded.</exception> public object Decode(string ContentType, byte[] Data, Encoding Encoding, KeyValuePair <string, string>[] Fields, Uri BaseUri) { List <EmbeddedContent> List = new List <EmbeddedContent>(); FormDataDecoder.Decode(Data, Fields, null, List, BaseUri); return(new ReportContent(List.ToArray())); }
/// <summary> /// Encodes an object. /// </summary> /// <param name="Object">Object to encode.</param> /// <param name="Encoding">Desired encoding of text. Can be null if no desired encoding is speified.</param> /// <param name="ContentType">Content Type of encoding. Includes information about any text encodings used.</param> /// <param name="AcceptedContentTypes">Optional array of accepted content types. If array is empty, all content types are accepted.</param> /// <returns>Encoded object.</returns> /// <exception cref="ArgumentException">If the object cannot be encoded.</exception> public byte[] Encode(object Object, Encoding Encoding, out string ContentType, params string[] AcceptedContentTypes) { if (Object is ReportContent Report && InternetContent.IsAccepted(ContentTypes, AcceptedContentTypes)) { string Boundary = Guid.NewGuid().ToString(); ContentType = ReportCodec.ContentType + "; boundary=\"" + Boundary + "\""; return(FormDataDecoder.Encode(Report.Content, Boundary)); }