4using System.Threading.Tasks;
83 public Task<ContentResponse>
DecodeAsync(
string ContentType,
byte[] Data, Encoding Encoding,
84 KeyValuePair<string, string>[] Fields, Uri BaseUri,
ICodecProgress Progress)
98 switch (FileExtension.ToLower())
105 ContentType =
string.Empty;
118 switch (ContentType.ToLower())
125 FileExtension =
string.Empty;
160 public Task<ContentResponse>
EncodeAsync(
object Object, Encoding Encoding,
ICodecProgress Progress, params
string[] AcceptedContentTypes)
163 return Task.FromResult(
new ContentResponse(
new ArgumentException(
"Unable to encode object, or content type not accepted.", nameof(Object))));
170 s = Object.ToString();
172 if (Encoding is
null)
174 ContentType +=
"; charset=utf-8";
175 Encoding = Encoding.UTF8;
178 ContentType +=
"; charset=" + Encoding.WebName;
180 return Task.FromResult(
new ContentResponse(ContentType, Object, Encoding.GetBytes(s)));
Contains information about a response to a content request.
bool TryGetContentType(string FileExtension, out string ContentType)
Tries to get the content type of an item, given its file extension.
bool Decodes(string ContentType, out Grade Grade)
If the decoder decodes an object with a given content type.
static readonly string[] CssContentTypes
CSS content types.
const string DefaultContentType
Content-Type for CSS files.
static readonly string[] CssFileExtensions
Plain text file extensions.
bool TryGetFileExtension(string ContentType, out string FileExtension)
Tries to get the file extension of an item, given its Content-Type.
Task< ContentResponse > EncodeAsync(object Object, Encoding Encoding, ICodecProgress Progress, params string[] AcceptedContentTypes)
Encodes an object.
string[] FileExtensions
Supported file extensions.
string[] ContentTypes
Supported content types.
CssCodec()
CSS encoder/decoder.
Task< ContentResponse > DecodeAsync(string ContentType, byte[] Data, Encoding Encoding, KeyValuePair< string, string >[] Fields, Uri BaseUri, ICodecProgress Progress)
Decodes an object.
bool Encodes(object Object, out Grade Grade, params string[] AcceptedContentTypes)
If the encoder encodes a given object.
Encapsulates a CSS Document
Static class managing encoding and decoding of internet content.
static bool IsAccepted(string ContentType, params string[] AcceptedContentTypes)
Checks if a given content type is acceptable.
Static class managing binary representations of strings.
static string GetString(byte[] Data, int Offset, int Count, Encoding DefaultEncoding)
Gets a string from its binary representation, taking any Byte Order Mark (BOM) into account.
Interface for reporting progress about an encoding or decoding.
Basic interface for Internet Content decoders. A class implementing this interface and having a defau...
Basic interface for Internet Content encoders. A class implementing this interface and having a defau...