Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 

DataUtils.DataUrl

Library that can be used to construct value objects representing a DataUrl (rfc2397)

  • Parse DataUrl strings
  • Construct DataUrl objects from byte array or string
  • Cross platform, targets .NET Standard 2.0
  • Published as Nuget package

Reading data URL's from string

// From data url string
var dataUrl = new DataUrl("data:image/gif...."); 

// Get content as string
dataUrl.ReadAsString();

// Get content as string with different encoding
dataUrl.ReadAsString(Encoding.UTF7);

// Get content as base64 encoded string
dataUrl.ReadAsStringBase64Encoded();

// Get raw content as byte array
dataUrl.Content

// Get content type
dataUrl.ContentType;

// Get possibly attached parameters as IEnumerable<KeyValuePair<string, string>>
dataUrl.Parameters; 

The constructor will throw DataUrlParseException if it's not possible to construct a DataUrl instance from the given string. You can also use DataUrlParser.TryParse if you don't want to deal with exceptions.

if (DataUrlParser.TryParse(dataUrlString, out var parsedDataUrl)) {
    // We could parse a data url
}

Creating data URL's

// Create from string
var dataUrl = DataUrl.NewDataUrl(jsonString, "application/json");

// Create from image
var bytes = File.ReadAllBytes("C:\\somepath\\picture.png");
var dataUrl = DataUrl.NewDataUrl(bytes, "image/png");

// Create from already base64 encoded string
var dataUrl = DataUrl.NewFromBase64EncodedString(base64EncodedString, "image/png");

// Create a data URL with attached parameters
var parameters = new KeyValuePair<string, string> [] { 
    new KeyValuePair<string, string>("type", "token"), 
    new KeyValuePair<string, string>("authority", "https://...")
};
var dataUrl = DataUrl.NewDataUrl(
    jwtString, // Can also use a byte array
    "text/plain", 
    parameters
);

// When having another encoding other than default
DataUrl.NewDataUrl(myString, "text/plain", Encoding.UTF7);
DataUrl.NewDataUrl(myString, "text/plain", parameters, Encoding.UTF7);

About

Class that can be used as value object representing a DataUrl (rfc2397)

Resources

Releases

No releases published

Packages

No packages published

Languages