Trestle.Extensions

.NET Library to support to provide extension methods.


Keywords
extensions, graph, json, node
Install
Install-Package Trestle.Extensions -Version 0.0.19

Documentation

Trestle

SonarCloud status

Trestle is a .NET Standard library providing functionality to support

  • JSON Serialization

NuGet package providing a suite of .Net functionality.

Downloads

The latest stable release of Trestle is available on NuGet. https://www.nuget.org/packages/Trestle/

JSON Serialization

Dictionary serialization example:

var data = new Dictionary<string, object>{ {"name","test"},{"id",11 } };
using (var memory = new MemoryStream())
{
	var formatter = new JsonFormatter();
	formatter.Serialize(memory, data);
	var json = Encoding.UTF8.GetString(memory.ToArray());
	Assert.AreEqual("{\"name\":\"test\",\"id\":11}",json);
}

List serialization example:

var list = new List<object> { 0, 1, 2, 3 };
using (var memory = new MemoryStream())
{
	var formatter = new JsonFormatter();
	formatter.Serialize(memory, list);
	var json = Encoding.UTF8.GetString(memory.ToArray());
	Assert.AreEqual("[0,1,2,3]",json);
}

ISerializable serialization example:

class Widget : ISerializable
{
	public Widget(int code, string message)
	{
		_code = code;
		_message = message;
	}
	private Widget(SerializationInfo info, StreamingContext context)
	{
		_code = info.GetInt32("code");
		_message = info.GetString("message");
	}

	[SecurityPermission(SecurityAction.Demand, SerializationFormatter = true)]
	public void GetObjectData(SerializationInfo info, StreamingContext context)
	{
		info.AddValue("code", _code);
		info.AddValue("message", Message);
	}
	public int Code { get { return _code; } }
	private readonly int _code = 11;
	public string Message { get { return _message; } }
	private string _message = "?";
}
var widget = new Widget(11,"test");
using (var memory = new MemoryStream())
{
	var formatter = new JsonFormatter();
	formatter.Serialize(memory, widget);
	var json = Encoding.UTF8.GetString(memory.ToArray());
	Assert.AreEqual("{\"code\":11,\"message\":\"test\"}",json);
}

JSON Deserialization

Dictionary deserialization example:

var memory = new MemoryStream(Encoding.UTF8.GetBytes("{\"name\":\"test\",\"id\":11}"));
var formatter = new JsonFormatter();
var data = formatter.Deserialize(memory) as IDictionary;
Assert.AreEqual("test", data["name"]);